且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

限制user_agent

更新时间:2022-09-13 16:56:11

user_agent可以理解为浏览器标识
user_agent为什么可以做访问控制呢?
背景:比如网站受到cc攻击。攻击的人通过软件或者肉机,想攻击某个网站的时候,把所有的肉机发动起来,让它们同时访问一个站点。但是cc攻击往往有一个特征,就是user_agent一致的,访问地址一致。访问速度快,每秒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:匹配的意思。user_agent匹配当前行或者下面一行。如果不加OR就是并且
NC:表示忽略大小写。因为有些浏览器首字符会大写。
F:就是直接Forbidden
因为curl是没有user_agent(上一次访问的地址)
curl -A "123123" 指定user_agent //自定义user_agent
curl -A "lsx lsx" -x192.168.211.150:80 discuz2.com/lsx/1.php -I //user_agent生效
cat /usr/local/apache2.4/logs/discuz2.com-access_log
192.168.211.150 - - [ +0800] "HEAD HTTP://discuz2.com/lsx/1.php HTTP/1.1" 200 - "-" "lsx lsx"

关于curl:
-A :指定user_agent
-e:指定Referer
-x:相当于省略hosts
-I:查看状态码




本文转自 虾米的春天 51CTO博客,原文链接:http://blog.51cto.com/lsxme/2054742,如需转载请自行联系原作者