在 .htaccess 中设置 User-Agent 阻止,否则我的网站会受到攻击
Setting up User-Agent blocking in .htaccess or my site is being attacked
我的网站遭到攻击。
我做了什么:
在 .htaccess 文件中,大约 4200 个 IP 地址被阻止,请求以这种方式分批发送:
允许所有
拒绝来自 200.6.169.250
拒绝来自 85.109.127.48
所有请求都来自一个用户代理。
如何正确屏蔽用户代理
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36 OPR/71.0.3770.284?
是的,我现在写这个,不知道这里有没有正确的选项?
# Blocking user agents:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36 OPR/71.0.3770.284" [OR]
RewriteCond %{HTTP_USER_AGENT} "=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36" [OR]
RewriteCond %{HTTP_USER_AGENT} "^Mozilla/5\.0 (Windows NT 10\.0; Win64; x64) AppleWebKit/537\.36 (KHTML, like Gecko) Chrome/85\.0\.4183\.121 Safari/537\.36" [OR]
RewriteCond %{HTTP_USER_AGENT} "^Mozilla\/5\.0 \(Windows NT 10\.0; Win64; x64\) AppleWebKit\/537\.36 \(KHTML, like Gecko\) Chrome\/85\.0\.4183\.121 Safari\/537\.36$"
RewriteRule ^ - [F]
# Blocking user agents:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36 OPR/71.0.3770.284" [OR]
RewriteCond %{HTTP_USER_AGENT} "^Mozilla\/5\.0 \(Windows NT 10\.0\; Win64\; x64\) AppleWebKit\/537\.36 \(KHTML\, like Gecko\) Chrome\/85\.0\.4183\.121 Safari\/537\.36 OPR\/71\.0\.3770\.284" [OR]
RewriteCond %{HTTP_USER_AGENT} "^Mozilla\/5\.0 \(Windows NT 10\.0\; Win64\; x64\) AppleWebKit\/537\.36 \(KHTML\, like Gecko\) Chrome\/85\.0\.4183\.121 Safari\/537\.36\ (.*)$"
RewriteRule ^.*$ - [F]
第一个和第二个锁是一样的,而第三个允许你改变行尾。您可以只留下一个供您选择。这取决于需要什么。
我看到了同样的攻击。阻止该浏览器字符串(与到处都是的 IP 相对)似乎是最好的选择。考虑到攻击的速度、IP 可变性和网络速度差异,我倾向于怀疑浏览器或某些漏洞利用是潜在原因。除非是同时攻击很多地方的bot网络?
请注意,我们已经看到来自较长版本的浏览器字符串的看似合法的流量:即代理字符串中超出 Safari/537.36
的附加信息看起来是合法的,而只有那些以该结尾的信息确切点似乎是某种明确的机器人 - 至少在这个时候。
如果您想阻止所有变体,可以使用以下方法:
# Blocking user agents:
RewriteEngine On
RewriteCond "%{HTTP_USER_AGENT}" "^Mozilla/5\.0 \(Windows NT 10\.0; Win64; x64\) AppleWebKit/537\.36 \(KHTML, like Gecko\) Chrome/85\.0\.4183\.121 Safari/537\.36.*$"
RewriteRule ^ - [F]
需要转义括号(就像您在上一个条件中所做的那样),因为 RewriteCond 默认需要正则表达式。虽然这些点会很好,但我更喜欢明确。 (无论出于何种原因,Apache 都不关心 / 是否未转义 - 他们的文档甚至也包括这样的示例。)
请注意,如果您只想阻止一个特定的字符串,则不必使用正则表达式,方法是使用 =
,如下所示。在这种情况下不需要转义,但引号是:
RewriteCond "%{HTTP_USER_AGENT}" "=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36"
我建议使用 https://addons.mozilla.org/en-US/firefox/addon/user-agent-string-switcher/ Other common tools (e.g. curl) are great for it too: https://www.cyberciti.biz/faq/curl-set-user-agent-command-linux-unix/
之类的东西进行测试
我的网站遭到攻击。 我做了什么: 在 .htaccess 文件中,大约 4200 个 IP 地址被阻止,请求以这种方式分批发送: 允许所有 拒绝来自 200.6.169.250 拒绝来自 85.109.127.48
所有请求都来自一个用户代理。
如何正确屏蔽用户代理 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36 OPR/71.0.3770.284?
是的,我现在写这个,不知道这里有没有正确的选项?
# Blocking user agents:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36 OPR/71.0.3770.284" [OR]
RewriteCond %{HTTP_USER_AGENT} "=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36" [OR]
RewriteCond %{HTTP_USER_AGENT} "^Mozilla/5\.0 (Windows NT 10\.0; Win64; x64) AppleWebKit/537\.36 (KHTML, like Gecko) Chrome/85\.0\.4183\.121 Safari/537\.36" [OR]
RewriteCond %{HTTP_USER_AGENT} "^Mozilla\/5\.0 \(Windows NT 10\.0; Win64; x64\) AppleWebKit\/537\.36 \(KHTML, like Gecko\) Chrome\/85\.0\.4183\.121 Safari\/537\.36$"
RewriteRule ^ - [F]
# Blocking user agents:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36 OPR/71.0.3770.284" [OR]
RewriteCond %{HTTP_USER_AGENT} "^Mozilla\/5\.0 \(Windows NT 10\.0\; Win64\; x64\) AppleWebKit\/537\.36 \(KHTML\, like Gecko\) Chrome\/85\.0\.4183\.121 Safari\/537\.36 OPR\/71\.0\.3770\.284" [OR]
RewriteCond %{HTTP_USER_AGENT} "^Mozilla\/5\.0 \(Windows NT 10\.0\; Win64\; x64\) AppleWebKit\/537\.36 \(KHTML\, like Gecko\) Chrome\/85\.0\.4183\.121 Safari\/537\.36\ (.*)$"
RewriteRule ^.*$ - [F]
第一个和第二个锁是一样的,而第三个允许你改变行尾。您可以只留下一个供您选择。这取决于需要什么。
我看到了同样的攻击。阻止该浏览器字符串(与到处都是的 IP 相对)似乎是最好的选择。考虑到攻击的速度、IP 可变性和网络速度差异,我倾向于怀疑浏览器或某些漏洞利用是潜在原因。除非是同时攻击很多地方的bot网络?
请注意,我们已经看到来自较长版本的浏览器字符串的看似合法的流量:即代理字符串中超出 Safari/537.36
的附加信息看起来是合法的,而只有那些以该结尾的信息确切点似乎是某种明确的机器人 - 至少在这个时候。
如果您想阻止所有变体,可以使用以下方法:
# Blocking user agents:
RewriteEngine On
RewriteCond "%{HTTP_USER_AGENT}" "^Mozilla/5\.0 \(Windows NT 10\.0; Win64; x64\) AppleWebKit/537\.36 \(KHTML, like Gecko\) Chrome/85\.0\.4183\.121 Safari/537\.36.*$"
RewriteRule ^ - [F]
需要转义括号(就像您在上一个条件中所做的那样),因为 RewriteCond 默认需要正则表达式。虽然这些点会很好,但我更喜欢明确。 (无论出于何种原因,Apache 都不关心 / 是否未转义 - 他们的文档甚至也包括这样的示例。)
请注意,如果您只想阻止一个特定的字符串,则不必使用正则表达式,方法是使用 =
,如下所示。在这种情况下不需要转义,但引号是:
RewriteCond "%{HTTP_USER_AGENT}" "=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36"
我建议使用 https://addons.mozilla.org/en-US/firefox/addon/user-agent-string-switcher/ Other common tools (e.g. curl) are great for it too: https://www.cyberciti.biz/faq/curl-set-user-agent-command-linux-unix/
之类的东西进行测试