Κοινή χρήση τεχνολογίας

Apache anti-leching, συμπίεση ιστοσελίδων, προσωρινή αποθήκευση ιστοσελίδων

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Πίνακας περιεχομένων

Συμπίεση ιστοσελίδας

τύπος

Παράδειγμα

Προσθέστε δυναμικά βήματα λειτουργίας της μονάδας

Βήματα για την επανεγκατάσταση του Apache

web cache

Παράδειγμα

Βήματα

Απόκρυψη πληροφοριών έκδοσης

Βήματα

Apache anti-eching

ορισμός

αρχή

Διαμόρφωση πειραματικού περιβάλλοντος anti-hotlink

εργαστηριακό περιβάλλον

Παράδειγμα τοπικού hotlinking εικόνων

Βήματα

Παράδειγμα Anti-hotlink

Βήματα


Συμπίεση ιστοσελίδας

Η ταχύτητα πρόσβασης ενός ιστότοπου καθορίζεται από πολλούς παράγοντες, συμπεριλαμβανομένης της ταχύτητας απόκρισης της εφαρμογής, του εύρους ζώνης δικτύου, της απόδοσης διακομιστή, της ταχύτητας μετάδοσης δικτύου με τον πελάτη κ.λπ. Ένας από τους πιο σημαντικούς παράγοντες είναι η ανταπόκριση του ίδιου του Apache. Μπορείτε να χρησιμοποιήσετε τη συμπίεση ιστού για να αυξήσετε την ταχύτητα της εφαρμογής σας. Το πιο σημαντικό, δεν κοστίζει απολύτως τίποτα και θα αυξήσει ελαφρώς τη χρήση της CPU του διακομιστή κατά μία ή δύο ποσοστιαίες μονάδες ή λιγότερο.

τύπος

  • gzip
    • Υψηλή απόδοση συμπίεσης, υψηλή χρήση CPU
  • υποτιμώ
    • Η απόδοση συμπίεσης δεν είναι τόσο υψηλή όσο το gzip και καταναλώνει λιγότερη CPU.

Παράδειγμα

Συμπίεση ιστοσελίδας μέσω της ενότητας deflate

Εάν έχετε ήδη εγκαταστήσει το Apache μέσω του πακέτου πηγαίου κώδικα, εάν εξακολουθείτε να διατηρείτε το πακέτο πηγαίου κώδικα, μπορείτε να το ρυθμίσετε εκ νέου, να το μεταγλωττίσετε και να το εγκαταστήσετε Η επανεγκατάσταση του Apache δεν θα επηρεάσει τις προηγούμενες παραμέτρους.

Ή εάν έχετε διαμορφώσει τη λειτουργία της δυναμικής φόρτωσης μονάδων κατά την τελευταία εγκατάσταση, μπορείτε να χρησιμοποιήσετε τα εργαλεία apxs για να προσθέσετε δυναμικά μονάδες χωρίς επανεγκατάσταση.

Προσθέστε δυναμικά βήματα λειτουργίας της μονάδας

Προσθέστε δυναμικά τη μονάδα deflate χωρίς να εγκαταστήσετε ξανά το Apache

cd στον διακομιστή HTTP Apache για αποθήκευση κώδικα λειτουργικής μονάδας που σχετίζεται με φίλτρα

Χρησιμοποιήστε το εργαλείο apxs για να λειτουργήσετε

  • -i: Εγκαταστήστε τη μονάδα. Εγκαταστήστε τη μεταγλωττισμένη μονάδα στον διακομιστή Apache.
  • -γ: Μεταγλώττιση ενότητας. Μεταγλωττίστε το αρχείο πηγαίου κώδικα (εδώ mod_deflate.c) σε ένα κοινόχρηστο αρχείο αντικειμένου (αρχείο .so).
  • -α: Αυτόματη ενεργοποίηση της μονάδας. Μετά τη μεταγλώττιση και την εγκατάσταση της λειτουργικής μονάδας, ενεργοποιήστε την αμέσως, δεν χρειάζεται να επεξεργαστείτε μη αυτόματα το αρχείο διαμόρφωσης.

Τέλος, χρησιμοποιήστε την εντολή apachectl with pipes και grep για να ελέγξετε εάν η μονάδα deflate έχει φορτωθεί με επιτυχία.

  1. [root@localhost filters]# cd /root/httpd-2.4.25/modules/filters/
  2. [root@localhost filters]# apxs -i -c -a mod_deflate.c
  3. [root@localhost filters]# apachectl -t -D DUMP_MODULES | grep deflate
  4. deflate_module (shared)

Ενεργοποίηση της ενότητας mod_deflate στο αρχείο διαμόρφωσης httpd

  1. [root@localhost filters]# vim /usr/local/httpd/conf/httpd.conf
  2. 在末行模式下搜索:/deflate
  3. LoadModule deflate_module modules/mod_deflate.so # 去掉开头注释
  4. <IfModule mod_deflate.c>
  5. # 对指定的类型应用deflat进行压缩(文本、样式表、图像)
  6. AddOutputFilterByType DEFLATE text/html text/css text/jpg text/png text/gif
  7. DeflateCompressionLevel 9 # 指定了压缩级别为9,表示最高级别的压缩(压缩比最高,但消耗CPU资源较多)
  8. SetOutputFilter DEFLATE # 指定默认的输出过滤器为deflate进行输出内容的压缩
  9. </IfModule>

Βήματα για την επανεγκατάσταση του Apache

Προσθέστε τη μονάδα deflate επανεγκαθιστώντας απευθείας το Apache

Χρησιμοποιήστε πρώτα apachectl -t -D DUMP_MODULES | grep ξεφουσκώνωΕντολή για να ελέγξετε εάν ο Apache διαθέτει αυτήν τη στιγμή μονάδα deflate

Εάν το Apache είναι ενεργοποιημένο, χρησιμοποιήστε τοsystemctl διακοπή httpdΚλείσιμο σέρβις

Εισαγάγετε τον κατάλογο αποσυμπίεσης του πακέτου πηγαίου κώδικα, καθορίστε τον κατάλογο εγκατάστασης και ενεργοποιήστε ορισμένες λειτουργίες Η μονάδα deflate χρησιμοποιείται για τη συμπίεση ιστοσελίδων.

./ΔιαμορφώστεΜετά την επεξεργασία, χρησιμοποιήστεκάνει && κάνει εγκατάστασηΕντολή για μεταγλώττιση και εγκατάσταση

  1. [root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-deflate
  2. [root@localhost httpd-2.4.25]# make && make install

Χρησιμοποιήστε την εντολή ll για να ελέγξετε εάν η μονάδα deflate είναι ενεργοποιημένη. Μπορείτε να δείτε ότι υπάρχει το αρχείο mod_deflate.so.

  1. [root@localhost httpd-2.4.25]# ll /usr/local/httpd/modules/mod_deflate.so
  2. -rwxr-xr-x 1 root root 53096 7月 10 20:43 /usr/local/httpd/modules/mod_deflate.so

Αλλά χρησιμοποιήστε apachectl -t -D DUMP_MODULES | grep ξεφουσκώνωΔεν είναι δυνατή η υποβολή ερωτήματος για την εντολή επειδή δεν είναι ενεργοποιημένη στο αρχείο διαμόρφωσης του Apache.

Επεξεργαστείτε το κύριο αρχείο διαμόρφωσης του httpd Στη γραμμή 143 περίπου, μπορείτε να δείτε ότι υπάρχουν πολλάLoadModuleδηλώσεις, θα προσθέσουμε νέες δηλώσεις φόρτωσης λειτουργικών μονάδων κάτω από αυτές τις LoadModules.

Στο δεύτερο μέρος της δήλωσης φόρτωσης λειτουργικής μονάδας, μπορείτε να χρησιμοποιήσετε μια απόλυτη διαδρομή ή μια σχετική διαδρομή Επειδή κατά την εγκατάσταση του Apache, ο κανόνας του προθέματος (πρόθεμα) ορίζεται μέσω του σεναρίου ./configure, επομένως θέλετε να καθορίσετε μια συγκεκριμένη διαδρομή. το αρχείο διαμόρφωσης Apache Η διαδρομή προς το αρχείο, η διαδρομή του προθέματος μπορεί να παραλειφθεί

Η ετικέτα IfModule χρησιμοποιείται για τη φόρτωση υπό όρους διαμόρφωσης της μονάδας.

  1. [root@localhost httpd-2.4.25]# vim /usr/local/httpd/conf/httpd.conf
  2. LoadModule deflate_module modules/mod_deflate.so
  3. <IfModule mod_deflate.c> # 只有当 mod_deflate 模块加载时才会执行下面的配置
  4. DeflateCompressionLevel 6 # 压缩级别,数字越大压缩比就越大
  5. SetOutputFilter DEFLATE # 启用deflate模块
  6. # 告诉服务器对哪些文件进行压缩,如果是已经压缩过的,就不再压缩
  7. AddOutputFilterByType DEFLATE text/html text/plain text/xml text/csstext/javascript application/x-javascript application/javascript application/json
  8. SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
  9. SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
  10. SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
  11. AddOutputFilterByType DEFLATE text/*
  12. AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript
  13. AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp
  14. </IfModule>

Αποθήκευση και έξοδος, μπορείτε να χρησιμοποιήσετεhttpd -tΓια να ανιχνεύσετε εάν υπάρχουν σφάλματα σύνταξης στο αρχείο διαμόρφωσης Εάν σας ζητηθεί το Syntax OK, αυτό σημαίνει ότι δεν υπάρχουν σφάλματα.

Επειδή το httpd χρειάζεται να φορτώσει ξανά το τροποποιημένο αρχείο διαμόρφωσης για να τεθεί σε ισχύ η διαμόρφωση που προστέθηκε πρόσφατα, επανεκκινήστε την υπηρεσία.

Αυτή τη στιγμή, αποκτήστε πρόσβαση στον διακομιστή web στο πρόγραμμα περιήγησης, πατήστε F12 στο πληκτρολόγιο για να ανοίξετε τα εργαλεία προγραμματιστή, επιλέξτε τη διεύθυνση IP του διακομιστή web και μπορείτε να δείτε στην κεφαλίδα απόκρισης ότι η τεχνολογία συμπίεσης είναι gzip

Το πείραμα τελειώνει


web cache

Η προσωρινή αποθήκευση ιστοσελίδων είναι η προσωρινή αποθήκευση ορισμένων σελίδων που συχνά δεν αλλάζουν ή αλλάζουν σπάνια Την επόμενη φορά που το πρόγραμμα περιήγησης αποκτήσει ξανά πρόσβαση σε αυτές τις σελίδες, δεν χρειάζεται να πραγματοποιήσετε ξανά λήψη αυτών των σελίδων, βελτιώνοντας έτσι την ταχύτητα πρόσβασης του χρήστη. Η ενότητα mod_expires του Apache θα δημιουργήσει αυτόματα την ετικέτα Expires και την ετικέτα Cache-Control στις πληροφορίες της κεφαλίδας της σελίδας Με βάση τις ετικέτες, το πρόγραμμα περιήγησης πελάτη αποφασίζει να αποκτήσει τη σελίδα στη μνήμη cache του τοπικού μηχανήματος για την επόμενη επίσκεψη, χωρίς να υποβάλει άλλο αίτημα. Μειώστε τη συχνότητα και τον αριθμό των προσβάσεων πελατών για να επιτευχθεί ο σκοπός της μείωσης της περιττής κίνησης και της αύξησης της ταχύτητας πρόσβασης.

Παράδειγμα

Εφαρμογή προσωρινής αποθήκευσης ιστοσελίδων

Βήματα

Ανοίξτε το κύριο αρχείο διαμόρφωσης httpd, ενεργοποιήστε τη λειτουργική μονάδα που λήγει και προσθέστε την και επανεκκινήστε την υπηρεσία.

  1. [root@localhost httpd-2.4.25]# vim /usr/local/httpd/conf/httpd.conf
  2. 在末行模式搜索:/expires_module
  3. 将前面的注释去掉,开启expires模块
  4. LoadModule expires_module modules/mod_expires.so
  5. <IfModule mod_expires.c>
  6. ExpiresActive On # 开启缓存功能
  7. ExpiresDefault "access plus 60 seconds" # 缓存时间设置为60秒
  8. </IfModule>
  9. 检测语法正确性,重启服务
  10. [root@localhost httpd-2.4.25]# httpd -t
  11. Syntax OK
  12. [root@localhost httpd-2.4.25]# systemctl restart httpd

Μετά την επανεκκίνηση της υπηρεσίας, μεταβείτε στο πρόγραμμα περιήγησης για πρόσβαση στον διακομιστή web και μπορείτε να δείτε ότι υπάρχουν δύο ακόμη γραμμές πληροφοριών στην κεφαλίδα απόκρισης.


Απόκρυψη πληροφοριών έκδοσης

Οι πληροφορίες ευπάθειας του λογισμικού σχετίζονται με μια συγκεκριμένη έκδοση, επομένως ο αριθμός έκδοσης είναι πολύ χρήσιμος για τους εισβολείς Στα εργαλεία προγραμματιστή στο πρόγραμμα περιήγησης, μπορείτε να δείτε τις πληροφορίες έκδοσης του Apache στο στοιχείο διακομιστή στην κεφαλίδα απόκρισης.

Εάν ένας εισβολέας δικτύου λάβει τις πληροφορίες έκδοσης του Apache, θα πραγματοποιήσει στοχευμένες επιθέσεις και θα προκαλέσει απώλειες στον ιστότοπο. Επομένως, στο πραγματικό περιβάλλον παραγωγής, ο αριθμός έκδοσης του Apache θα πρέπει να είναι κρυφός για να μειωθεί ο κίνδυνος επιθέσεων.

Βήματα

  1. [root@localhost httpd-2.4.25]# vim /usr/local/httpd/conf/httpd.conf
  2. 在末行模式下搜索:/httpd-default
  3. 将Include语句前的注释去掉,表示包含Include语句后面指定的文件在当前文件中(相当于把指定文件的内容复制粘贴到当前文件的当前Include语句的位置)
  4. # Various default settings
  5. Include conf/extra/httpd-default.conf

Αποθήκευση και έξοδος, ανοίξτε το αρχείο httpd.default

  1. [root@localhost httpd-2.4.25]# vim /usr/local/httpd/conf/extra/httpd-default.conf
  2. 在第55行就可以设置隐藏版本信息,这里改为Prod
  3. ServerTokens Prod

Μπορείτε να δείτε ότι οι επιλογές παρέχονται στα σχόλια: Ορισμός σε ένα από: Πλήρης | ΛΣ | Μικρά | Minimal | Ταγματάρχης | Κέντρο

Επιλογές

εικονογραφώ

Πλήρες ServerTokens

Επιστρέφει τις πιο λεπτομερείς πληροφορίες διακομιστή, συμπεριλαμβανομένου του τύπου λειτουργικού συστήματος και της λίστας μεταγλωττισμένων λειτουργικών μονάδων.

Για παράδειγμα: Apache/2.4.41 (Unix) OpenSSL/1.1.1d PHP/7.3.11

ServerTokens OS

Επιστρέφεται μόνο ο τύπος του λειτουργικού συστήματος.

Για παράδειγμα: Apache/2.4.41 (Unix)

ServerTokens Minor

Επιστρέφει τους αριθμούς της κύριας και της δευτερεύουσας έκδοσης.

Για παράδειγμα: Apache/2.4

ServerTokens Minimal

Επιστρέφει τον αριθμό της κύριας έκδοσης.

Για παράδειγμα: Apache/2

ServerTokens Major

Επιστρέφεται μόνο ο αριθμός της κύριας έκδοσης.

Για παράδειγμα: Apache/2

ServerTokens Παρ

Επιστρέφει ελάχιστες πληροφορίες, εμφανίζοντας μόνο το Apache, παραλείποντας τον αριθμό έκδοσης.

Για παράδειγμα: Apache

Αποθήκευση και έξοδος, επανεκκίνηση της υπηρεσίας.Πρόσβαση στον διακομιστή ιστού

Μπορείτε να δείτε ότι οι πληροφορίες έκδοσης εμφανίζουν μόνο έναν Apache


Apache anti-eching

Το hotlinking Apache είναι ένα μέτρο προστασίας που εμποδίζει άλλους ιστότοπους ή μη εξουσιοδοτημένα τρίτα μέρη να συνδεθούν απευθείας με εικόνες, βίντεο, ήχους ή άλλους πόρους στον ιστότοπό σας.

Όταν ένας ιστότοπος χρησιμοποιεί πόρους απευθείας από τον ιστότοπό σας, στην πραγματικότητα καταναλώνει το εύρος ζώνης και τους πόρους του διακομιστή σας, πιθανώς χωρίς την άδειά σας.

ορισμός

  • Το Anti-hotlinking αναφέρεται στην απαγόρευση σε εξωτερικούς ιστότοπους ή σε μη εξουσιοδοτημένα τρίτα μέρη να χρησιμοποιούν απευθείας συνδέσμους πόρων στον ιστότοπό σας μέσω της διαμόρφωσης διακομιστή. Εάν κάποιος προσπαθήσει να χρησιμοποιήσει τον σύνδεσμο πόρων σας απευθείας στη σελίδα του, οι επισκέπτες θα δουν ένα πρόβλημα σε αυτήν τη σελίδα όπου δεν μπορεί να φορτωθεί ο πόρος ή θα εμφανιστεί εναλλακτικό περιεχόμενο.

αρχή

  • Έλεγχος παραπομπής HTTP: Ο διακομιστής καθορίζει την προέλευση του αιτήματος πόρων ελέγχοντας την κεφαλίδα του Referer στο αίτημα HTTP. Εάν διαπιστωθεί ότι το Referer δεν προέρχεται από πηγή που επιτρέπετε (όπως ο δικός σας ιστότοπος), ο διακομιστής μπορεί να αρνηθεί την παροχή του πόρου ή να επιστρέψει εναλλακτικό περιεχόμενο.
  • Επανεγγραφή κανόνων: Χρησιμοποιήστε τους κανόνες Rewrite του Apache για να ξαναγράψετε αιτήματα, ελέγξτε την κεφαλίδα Referer και, στη συνέχεια, αποφασίστε εάν θα παρέχετε πόρους ή θα απορρίψετε το αίτημα με βάση τις ρυθμίσεις.

Διαμόρφωση πειραματικού περιβάλλοντος anti-hotlink

Όνομα CPU

όνομα τομέα

διεύθυνση IP

λειτουργικό σύστημα

Κύριο λογισμικό και εκδόσεις

apache1

www.e1.com

192.168.10.101

CentOS7.9

httpd-2.4.25.tar.gz

apache2

www.e2.com

192.168.10.201

CentOS7.9

httpd-2.4.25.tar.gz ή εγκατάσταση yum

πελάτης

Windows 10

Πρόγραμμα περιήγησης

εργαστηριακό περιβάλλον

Κλωνοποιήστε τον πρώτο διακομιστή απευθείας ή χρησιμοποιήστε το yum -y install httpd για να εγκαταστήσετε το httpd και αλλάξτε τη διεύθυνση IP σε 192.168.10.102

Τροποποιήστε τα ονόματα κεντρικών υπολογιστών των δύο διακομιστών

  1. 101主机
  2. [root@localhost ~]# hostname apache1
  3. [root@localhost ~]# bash
  4. [root@apache1 ~]#
  5. 201主机
  6. [root@localhost ~]# hostname apache2
  7. [root@localhost ~]# bash
  8. [root@apache2 ~]#

Τροποποιήστε τα αρχεία κεντρικών υπολογιστών των δύο διακομιστών ιστού, ώστε να μπορούν να επιλύσουν τα αντίστοιχα ονόματα τομέα.

Ακολουθήστε τα ίδια βήματα παρακάτω για να τροποποιήσετε τον κεντρικό υπολογιστή 201

  1. [root@apache1 ~]# vim /etc/hosts
  2. 在hosts文件末尾追加
  3. 192.168.10.101 www.e1.com
  4. 192.168.10.201 www.e2.com

Για το αρχείο hosts του κεντρικού υπολογιστή-πελάτη Win10, στο C:WindowsSystem32driversetc, κάντε διπλό κλικ στο αρχείο hosts για να το ανοίξετε με το Σημειωματάριο.

Απενεργοποιήστε το τείχος προστασίας και τον μηχανισμό ασφαλείας του πυρήνα των δύο διακομιστών Web, ενεργοποιήστε την υπηρεσία httpd και προσπαθήστε να δείτε εάν μπορείτε να αποκτήσετε πρόσβαση στους δύο διακομιστές Ιστού στον κεντρικό υπολογιστή-πελάτη.

  1. 在两个Web服务器操作
  2. [root@apache1 ~]# systemctl start httpd
  3. [root@apache1 ~]# setenforce 0

Παράδειγμα τοπικού hotlinking εικόνων

Ο 101 κεντρικός υπολογιστής είναι ο ιστότοπός μου και πρέπει να κλέψω τις φωτογραφίες στον διακομιστή ιστού 201.

Δηλαδή το www.e1.com κλέβει τον σύνδεσμο εικόνας του www.e2.com

Βήματα

Ελάτε στο 201 host

Εισαγάγετε τον κατάλογο όπου το httpd αποθηκεύει αρχεία ιστοσελίδας, σύρετε μια εικόνα και επεξεργαστείτε το αρχείο index.html.

  1. [root@apache2 ~]# cd /usr/local/httpd/htdocs/
  2. 在该目录下从宿主机拖入一张图片
  3. [root@apache2 htdocs]# vim index.html
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <title>标题</title>
  8. </head>
  9. <body>
  10. <h1>原图网站</h1>
  11. <img src="logo.jpg" /> # 如果图片文件是在网页文件同一目录下,可以不用加路径
  12. </body>
  13. </html>

Αποθήκευση και έξοδος Αυτή τη στιγμή, χρησιμοποιήστε το πρόγραμμα περιήγησης για να επισκεφτείτε τη διεύθυνση www.e2.com στον κεντρικό υπολογιστή και μπορείτε να δείτε ότι υπάρχουν εικόνες στην ιστοσελίδα.

Εάν θέλετε να κλέψετε εικόνες από άλλους ιστότοπους, χρειάζεστε έναν σύνδεσμο προς την εικόνα, κάντε δεξί κλικ στην εικόνα στο πρόγραμμα περιήγησης και επιλέξτε Αντιγραφή συνδέσμου εικόνας.

Ελάτε στο 101 Host

Προσθέστε έναν σύνδεσμο προς την εικόνα στην αρχική σελίδα του διακομιστή Web 101

  1. [root@apache1 ~]# cd /var/www/html # 使用yum安装httpd的存放网页文件的目录
  2. [root@apache1 html]# vim index.html
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>标题</title>
  7. </head>
  8. <body>
  9. <h1>盗图网站</h1>
  10. <img src="http://www.e2.com/logo.jpg" />
  11. </body>
  12. </html>

Αποθήκευση και έξοδος, μεταβείτε στον κεντρικό υπολογιστή πελάτη Win10 και επισκεφτείτε τις δύο διευθύνσεις URL www.e1.com και www.e2.com

Χρησιμοποιήστε το F12 για να ανοίξετε τα εργαλεία προγραμματιστή Μπορείτε να δείτε στο δίκτυο ότι η διεύθυνση URL αιτήματος και οι σύνδεσμοι εικόνων του www.e2.com είναι δικές του www.e2.com.

Η διεύθυνση URL αιτήματος του www.e1.com είναι www.e1.com, αλλά το αίτημα εικόνας είναι η IP του συνδέσμου κεντρικού υπολογιστή + εικόνας www.e2.com

Μέχρι στιγμής, έχει εφαρμοστεί ένα απλό τοπικό hotlinking εικόνας.

Παράδειγμα Anti-hotlink

Εάν κάποιος άλλος κεντρικός υπολογιστής κλέψει τον σύνδεσμο εικόνας του κεντρικού υπολογιστή 201, θα εμφανιστεί μόνο η σταθερή εικόνα αντί για την εικόνα που θέλει να κλέψει το άλλο μέρος.

Βήματα

Εισαγάγετε μια άλλη εικόνα (error.jpg) στον κατάλογο htdocs του κεντρικού υπολογιστή 201 (www.e2.com) που παρέχει την αρχική εικόνα για πειράματα κατά της βδέλλας.

Στη συνέχεια, επεξεργαστείτε το αρχείο διαμόρφωσης του httpd και ενεργοποιήστε την ενότητα επανεγγραφής (επαναγραφή διεύθυνσης Ο σκοπός της επανεγγραφής είναι ότι εάν κάποιος ζητήσει το logo.jpg μου, να ανακατευθύνει το αίτημα στο error.jpg).

Με τη λειτουργία επανεγγραφής διεύθυνσης, το αίτημα μπορεί να ελεγχθεί και να κριθεί εάν το αίτημα έχει προκαθοριστεί από το www.e2.com, η πρόσβαση θα επιτρέπεται εάν το πρόθεμα του αιτήματος δεν είναι www.e2.com δεν επιτρέπεται.

  1. [root@apache2 htdocs]# vim /usr/local/httpd/conf/httpd.conf
  2. 在末行模式下搜索:/rewrite
  3. LoadModule rewrite_module modules/mod_rewrite.so # 将开头注释去掉,启用rewrite模块
  4. 在末行模式下搜索:/htdocs
  5. 在<Directory "/usr/local/httpd/htdocs">标签内往下翻
  6. 找到AllowOverride参数的行,修改内容为下方内容
  7. AllowOverride None
  8. RewriteEngine On
  9. RewriteCond %{HTTP_REFERER} !^http://e2.com$ [NC]
  10. RewriteCond %{HTTP_REFERER} !^http://e2.com/.*$ [NC]
  11. RewriteCond %{HTTP_REFERER} !^http://www.e2.com$ [NC]
  12. RewriteCond %{HTTP_REFERER} !^http://www.e2.com/.*$ [NC]
  13. RewriteRule .*.(gif|jpg|swf)$ http://www.e2.com/error.png

παράμετρος

εικονογραφώ

Allow Override ALL

Να επιτρέπεται το RewriteEngine και άλλοι κανόνες επανεγγραφής σε αρχεία .htaccess.

ALL: Επιτρέπει την παράκαμψη όλων των τύπων οδηγιών επανεγγραφής από κανόνες στο αρχείο .htaccess.

Κανένα: Δεν επιτρέπει τη χρήση αρχείων .htaccess σε αυτόν τον κατάλογο για την παράκαμψη της διαμόρφωσης διακομιστή

RewriteEngine On

Ενεργοποίηση επανεγγραφής, αυτό είναι το πρώτο βήμα για την ενεργοποίηση κανόνων επανεγγραφής

RewriteCond

Ορίστε τις συνθήκες επανεγγραφής

%{HTTP_REFERER}

Είναι μια ενσωματωμένη μεταβλητή του Apache Αυτή η μεταβλητή μπορεί να λάβει τη διεύθυνση URL στις πληροφορίες κεφαλίδας του μηνύματος αιτήματος όταν ο χρήστης έχει πρόσβαση.

Αντιστοιχίστε την τιμή Referer στο αίτημα

!^http://www.e2.com/.*$

Οποιοδήποτε αρχείο κάτω από τη διεύθυνση URL (.*: αντιστοιχεί σε έναν ή πολλούς χαρακτήρες)

Υποδεικνύει ότι δεν ταιριάζει με μια συμβολοσειρά που αρχίζει με http://www.e2.com/ και τελειώνει με έναν ή πολλούς χαρακτήρες

[NC]

Το φιλτράρισμα δεν κάνει διάκριση πεζών-κεφαλαίων

RewriteRule

Ορίστε τους κανόνες επανεγγραφής

.*.(gif|jpg|swf)$ http://www.e2.com/error.png

Όταν η προηγούμενη συνθήκη επανεγγραφής ταιριάζει, εάν το ζητούμενο URL τελειώνει σε .gif, .jpg ή .swf

Στη συνέχεια, το αίτημα θα ανακατευθυνθεί στη διεύθυνση http://www.e2.com/error.png

.*: ταιριάζει με οποιονδήποτε αριθμό χαρακτήρων

.: Η κουκκίδα που διέφυγε από τον χαρακτήρα διαφυγής, εδώ είναι η έννοια της απλής κουκκίδας

Αποθήκευση και έξοδος, επανεκκίνηση της υπηρεσίας.

Τέλος, ήρθαμε στον κεντρικό υπολογιστή πελάτη (Win10) για να δοκιμάσουμε να αποφύγουμε την προσωρινή αποθήκευση της εικόνας από το πρόγραμμα περιήγησης, επομένως χρησιμοποιήστε τα πλήκτρα συντόμευσης Ctrl + Shift + Delete για να διαγράψετε την προσωρινή μνήμη του προγράμματος περιήγησης.

Στη συνέχεια, επισκεφτείτε το www.e2.com και όλα λειτουργούν καλά

Όταν επισκέπτεστε το www.e1.com, ο σύνδεσμος κλεμμένης εικόνας γίνεται η ανακατευθυνόμενη εικόνα error.png.