0

我最近又遇到了一些 DDOS 攻击问题。基本上我想禁止访问某个路径。

来自日志文件的示例:

109.242.25.254 - - [23/Mar/2013:16:09:35 +0100] "GET /?op=my_account HTTP/1.1" 200 4218 "-" "Mozilla/5.0 (X11; U; Linux i686; en-美国;rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10

所以我想禁止空白引用者或“-”引用者访问路径“?op = my_account”并将它们发送到403页面。

我用htaccess这样开始:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?mysite.com [NC]
RewriteRule ^\?op=my_account$ - [F] 

所以基本上我不允许所有其他引用者访问这个页面,除了我的页面。但不知何故,这行不通。我想我在第二行遗漏了什么?

4

1 回答 1

0

您不能使用\?op=my_accountin RewriteRule,因为那里没有查询字符串,只有 URL 路径。您必须RewriteCond与 a 一起%{QUERY_STRING}使用

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mysite\.com [NC]
RewriteCond %{QUERY_STRING} ^op=my_account$
RewriteRule ^$ - [F]
于 2013-03-23T18:01:39.830 回答