linux学习第四十二篇:限定某个目录禁止解析php, 限制user_agent
来源:互联网 发布:excel怎么高级筛选数据 编辑:程序博客网 时间:2024/05/16 15:48
限定某个目录禁止解析php
- 虚拟主机配置文件添加的核心配置内容:
<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>
- 保存后记得测试语法以及加载配置文件。在/data/wwwroot/111.com/目录下创建upload目录,在upload下创建编辑php文件,内容可以为:
<?echo "123.php";?>
curl测试时直接返回了php源代码,并未解析
此时没有加上FilesMatch那几行配置,只有php_admin_flag engine off这行配置,所以访问时返回了php源代码,并未解析:
加上FilesMatch几行配置之后,访问php文件会出现403状态码,所以访问受到限制,就无法去解析php,也无法看到php的源代码:
PS:一般静态文件目录下是不允许存放php的
限制user_agent
user_agent可以理解为浏览器标识,针对user_agent来限制一些访问,比如可以限制一些不太友好的搜索引擎“爬虫”,你之所以能在百度搜到一些论坛,就是因为百度会派一些“蜘蛛爬虫”过来抓取网站数据。“蜘蛛爬虫”抓取数据类似于用户用浏览器访问网站,当“蜘蛛爬虫”太多或者访问太频繁,就会浪费服务器资源。另外,也可以限制恶意请求,这种恶意请求我们通常称作cc攻击,他的原理很简单,就是用很多用户的电脑同时访问同一个站点,当访问量或者频率达到一定层次,会耗尽服务器资源,从而使之不能正常提供服务。这种cc攻击其实有很明显的规律,其中这些恶意请求的user_agent相同或者相似,那我们就可以通过限制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>
- curl -A “xie xie” 指定user_agent
如果不指定user_agent,那么curl作为user_agent会被限制访问
使用参数 -A 指定了别的user_agent后就可以访问
PS:curl的 -A是指定user_agent
-e 是指定referer
-I 查看状态码
阅读全文