如何限制 WooCommerce filter_color 中的颜色选择数量?

问题描述 投票:0回答:1

我有一个商店网站。最近,具有不同 IP 的机器人向我的主机发送恶意请求,目的是使站点不可用,站点将收到 500 拒绝访问错误,例如,它们发送一个包含 filter_color= 和站点服务器处理器中 5 种颜色的 URL用于处理这些请求正忙并达到 100%。 示例:

https://example.com/shoes/?filter_color=奶油色、蓝色、海军蓝、绿色、白色

如何阻止在一个 URL 中发送超过 2 种颜色的请求或在 Cloudflare 或 WordPress 防火墙设置中发送请求?

我没有找到任何关于此的指导,我只能阻止所有包含 cloudflare 中的 filter_color= 的请求,这也导致真正的客户也被阻止。

谢谢您对我的指导

我尝试了这些方法,但没有成功:

htaccess:

RewriteEngine On
RewriteCond %{QUERY_STRING} (?:^|&)filter_color=(?:[^&]*&){3}
RewriteRule ^ - [F]

cloudflare 自定义规则:

(http.request.uri.query.filter_color.length > 3)
http.request.uri.query.filter_color.length > 3

阻止

cloudflare 自定义规则:

/?filter_color=*,*,*
/?filter_color=*,*,*,*
/?filter_color=*,*,*,*,*

阻止

wordpress woocommerce cloudflare ddos wordfence
1个回答
0
投票

PHP 或 Wordpress 中的任何解决方案都无法保护您免受机器人程序超载您的服务器的影响,因此您最好尝试使用 htaccess 规则或通过 cloudflare 在托管级别切断这种情况。

我不熟悉cloudflare规则,但类似的东西应该适用于apache。

RewriteEngine On
RewriteCond %{QUERY_STRING} (^|&)filter_color=([^&,]+,[^&,]+)(?:&|$)
RewriteRule ^ - [F,L]

您可以使用 regex101 等正则表达式测试网站来调整正则表达式规则,以确保它完全匹配您想要的内容。

© www.soinside.com 2019 - 2024. All rights reserved.