一、限定某個目錄禁止解析php
並不是所有的網站目錄是需要解析php的,比如上傳圖片的目錄等。禁止解析php能夠防止被***者以php的方式搞破壞。
1、配置虛擬主機
[root@juispan ~]# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "/data/www/123.com" ServerName 123.com ErrorLog "logs/123.com-error_log" CustomLog "logs/123.com-access_log" common <Directory /data/www/123.com/upload> php_admin_flag engine off ##upload目錄中的php不解析 <FilesMatch (.*)\.php(.*)> Order allow,deny deny from all ##所有.php文件拒絕訪問 </FilesMatch> </Directory> </VirtualHost>
2、檢查重新加載
[root@juispan ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@juispan ~]# /usr/local/apache2.4/bin/apachectl graceful [root@juispan ~]# ls /data/www/123.com/upload 1.php upload [root@juispan ~]# cat /data/www/123.com/upload/1.php <?php echo "123.com"; ?> [root@juispan ~]# cat /data/www/123.com/upload/upload <?php echo "123.com"; ?>
3、測試驗證
[root@juispan ~]# curl -x127.0.0.1:80 123.com/1.php 123.com [root@juispan ~]# curl -x127.0.0.1:80 123.com/upload/1.php <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>403 Forbidden</title> </head><body> <h1>Forbidden</h1> <p>You don't have permission to access /upload/1.php on this server.<br /> </p> </body></html> [root@juispan ~]# curl -x127.0.0.1:80 123.com/upload/upload <?php echo "123.com"; ?>
二、限制user_agent
User Agent意爲用戶代理,簡稱 UA,它是一個特殊字符串頭,使得服務器能夠識別客戶使用的操作系統及版本、CPU 類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等。
cc***是我們經常見到的最常見的一種***,它是***利用所能利用的肉雞去高頻訪問你的站點,導致站點不可以被正常的用戶所瀏覽。在***的時候有一個規律的特徵,user_agent是一致的。通過對user_agent做限制,可以解決這個問題。
1、配置虛擬主機
[root@juispan ~]# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "/data/www/123.com" ServerName 123.com ErrorLog "logs/123.com-error_log" CustomLog "logs/123.com-access_log" common <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR] ##匹配curl的訪問 OR=或關係 RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC] ##NC=忽略大小寫 RewriteRule .* - [F] ##F:Forbidden 禁止 </IfModule> </VirtualHost>
2、檢查重新加載
[root@juispan ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@juispan ~]# /usr/local/apache2.4/bin/apachectl graceful
3、測試驗證
[root@juispan ~]# curl -x127.0.0.1:80 123.com <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>403 Forbidden</title> </head><body> <h1>Forbidden</h1> <p>You don't have permission to access / on this server.<br /> </p> </body></html> [root@juispan ~]# curl -A "360Sec" -x127.0.0.1:80 123.com ##-A指定user-agent 123.com [root@juispan ~]# curl -A "baidu.com" -x127.0.0.1:80 123.com <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>403 Forbidden</title> </head><body> <h1>Forbidden</h1> <p>You don't have permission to access / on this server.<br /> </p> </body></html>