<Directory /data/wwwroot/111.com/upload>
php_admin_flag engine off //在upload目录下禁止解析php
<FilesMatch *\.php(.*)> //这行以及以下两行的意思就是
//让php的文件访问受到限制,防止php文件的源代码被查看
Order allow,deny
Deny from all
</FilesMatch>
</Directory>
<?
echo "123.php";
?>
加上FilesMatch几行配置之后,访问php文件会出现403状态码,所以访问受到限制,就无法去解析php,也无法看到php的源代码:
user_agent可以理解为浏览器标识,针对user_agent来限制一些访问,比如可以限制一些不太友好的搜索引擎“爬虫”,你之所以能在百度搜到一些论坛,就是因为百度会派一些“蜘蛛爬虫”过来抓取网站数据。“蜘蛛爬虫”抓取数据类似于用户用浏览器访问网站,当“蜘蛛爬虫”太多或者访问太频繁,就会浪费服务器资源。另外,也可以限制恶意请求,这种恶意请求我们通常称作cc攻击,他的原理很简单,就是用很多用户的电脑同时访问同一个站点,当访问量或者频率达到一定层次,会耗尽服务器资源,从而使之不能正常提供服务。这种cc攻击其实有很明显的规律,其中这些恶意请求的user_agent相同或者相似,那我们就可以通过限制user_agent发挥防攻击的作用。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR]
//OR是或者的意思,user_agent匹配curl或者匹配baidu.com
//NC是忽略大小写
RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC]
RewriteRule .* - [F] //F是Forbidden
</IfModule>
使用参数 -A 指定了别的user_agent后就可以访问 PS:curl的 -A是指定user_agent -e 是指定referer -I 查看状态码
如果没有就需要进入源码包里:cd /usr/local/src/php-5.6.30/ 在源码包里复制php.ini到php的安装目录中:cp php.ini-development /usr/local/php5/etc/php.ini
配置完disable_functions之后访问网站就会出现这样:
error_reporting 设定错误日志的级别,E_All 为所有类型的日志,不管是提醒还是警告都会记录。一般为E_ALL & ~E_NOTICE,排除掉notice相关的日志
用curl测试,发现500状态码,日志里也说明了只允许在1111.com目录和tmp目录下活动
扩展 apache开启压缩 http://ask.apelearn.com/question/5528 apache2.2到2.4配置文件变更 http://ask.apelearn.com/question/7292 apache options参数 http://ask.apelearn.com/question/1051 apache禁止trace或track防止xss http://ask.apelearn.com/question/1045 apache 配置https 支持ssl http://ask.apelearn.com/question/1029