Vercel 防火墙 Next.js 拒绝请求中的 php 扩展

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

我有一个爱好 Next.js 网站,该网站收到了大约 40,000 个 php 文件的机器人请求。这些机器人正在 PHP 平台上扫描 WordPress 漏洞。 我想使用 Vercel 的防火墙自定义规则来阻止所有 php 请求。有人可以帮助我在 Vercel 防火墙自定义规则中阻止所有对 *.php 的请求吗?

我使用自定义规则取得的成功有限 请求 -> 包含 -> /wp-content -> 拒绝

这条规则似乎运作良好。昨天它阻止了 35 个请求,仅阻止了 39,965 个请求。 我认为拒绝所有 php 文件会更容易,而不是尝试阻止所有 wp 文件夹。

我尝试了下面的方法来阻止 php 请求,结果非常奇怪。实施下面的每条规则后,我发现如果我在浏览器中导航到 somesite/anyname.php,vercel 防火墙的行为符合我的预期,它会向我的浏览器显示禁止的错误。

问题是当我检查防火墙日志时,它没有显示它阻止了任何内容。事实上,它将浏览器请求标记为常规网络流量,尽管它向我的浏览器显示了禁止的响应。

//按预期工作日志显示请求被拒绝以及拒绝请求的规则。 请求 -> 包含 -> '/wp-content' -> 拒绝

//阻止浏览器流量记录流量在防火墙中有效-> 请求 -> 包含 -> '/[slug].php' -> 拒绝

//阻止浏览器记录防火墙中有效的流量(实时视图) 请求 -> 包含 -> '/*.php' -> 拒绝

//阻止浏览器流量不会在日志中显示被拒绝的流量 请求 -> 匹配 -> '.(?:php\d?| phtml|ini|xml|key|cache|sqlite|db|pem|lock)(?:$|?)$' -> 拒绝

编辑** 我测试了正则表达式,它不正确,所以我将其替换为 .php$ 只是为了让生活变得轻松。当我有更多数据时会报告

我上面测试过的所有方法都会以禁止的方式阻止浏览器。我用来阻止 php 扩展的 3 个自定义规则正在阻止浏览器,但在日志中将其标记为普通 Web 流量,因此它仍然被标记为有效的边缘请求。

这真的让我很恼火,我有一个每月有 1,000 名访问者的小爱好网站,并且在扫描安全漏洞的机器人的边缘请求中收到了 4 万次点击。在堆栈上我什至没有使用更少!我有扫描的带宽,这只是事情的原理。

next.js vercel
1个回答
0
投票

在我看来,即使请求返回 403 禁止,vercel 也会将请求写入日志。这让我有点困惑,但即使请求已被记录,他们也会被拒绝。

此时我已经在 vercel 防火墙中设置了此配置。

规则1 请求路径 --> MatchesExpression --> .php$|.php7$

规则2 RequestPath --> MatchesExpression -->(wp-content|wp-admin|wp-login|cgi-bin|wp-includes|wp-trackback|wp-feed|.well-known)

我这样做是因为日志显示机器人正在寻找像 site/wp-content/ 或 site/wp-includes/ 这样的 url,没有 php 扩展名,只是尾随斜杠

今天,我使用此设置拒绝了 1,000 个请求,因此它似乎运行得很好。

JA4 摘要请求位于菜单上的下一个。

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