Apache限定某个目录禁止解析php
温馨提示:这篇文章已超过875天没有更新,请注意相关的内容是否还可用!
禁止解析php主要是为了安全,一般静态文件或者图片所存放的目录下是不允许放PHP的,以防黑客上传php木马
设置步骤如下
<Directory /data/wwwroot/ahao1.com/admin> #禁止解析PHP php_admin_flag engine off #访问php后缀的全部拒绝,拒绝后都无法访问了 <FilesMatch (.*)\.php(.*)> Order allow,deny Deny from all </FilesMatch> </Directory>
验证是否正确 # /usr/local/httpd/bin/apachectl -t
重新加载配置文件# /usr/local/httpd/bin/apachectl graceful
测试: curl测试时直接返回了php源代码,并未解析,如下图,直接403错误
限制user_agent
cc攻击:遇到user_agent很规律的请求,就可以判定是cc攻击。cc攻击,一秒钟访问N次服务器
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC] RewriteRule .* - [F] </IfModule>
OR:or,表示或者,curl或者baidu。
NC:忽略大小写。
F:Forbidden,禁止。
# /usr/local/apache2.4/bin/apachectl -t //验证配置文件是否正确
Syntax OK
# /usr/local/apache2.4/bin/apachectl graceful //重新加载
测试:
# curl -x 127.0.0.1:80 "http://ahao1.com/123.php" -I
HTTP/1.1 403 Forbidden
# curl -x 127.0.0.1:80 "http://ahao1.com/" -I
HTTP/1.1 403 Forbidden
因为用的curl,所以会被拒绝。
# curl -A "cc" -x 127.0.0.1:80 "http://ahao1.com/" -I
HTTP/1.1 200 OK
# curl -A "aha1" -x 127.0.0.1:80 "http://ahao1.com/" -I
HTTP/1.1 200 OK
-A:指定user_agent。指定了user_agent以后,这个RewriteRule就没意义了。
-e:指定referer。
-I:查看状态码。
-x:指定目标IP。