【发布时间】:2021-09-09 20:26:08
【问题描述】:
你能用 htaccess 过滤/检查 POST 方法/请求吗
例如,如果您想使用 htaccess 过滤 $_GET 变量以在匹配模式时重定向,则如下所示:
RewriteCond %{QUERY_STRING} <script> [NC]
RewriteRule .*$ /mylogPage.php? [L,R=301]
你能为 $_POST 变量做一个类似的过滤器吗?
我尝试了许多变体,包括尝试通过 htaccess 修改 mod_security。我假设在 htaccess 中它与以下内容有关:
RewriteCond %{REQUEST_METHOD} POST.
我试过了
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} <script> [NC]
RewriteRule .*$ /mylogPage.php? [L,R=301]
但它只是重定向页面
如果这应该通过 mod_security 完成,是否可以通过 htaccess 编辑 mod 安全性?语法会是什么样子?我尝试过,但没有成功。
【问题讨论】:
-
不,您不能使用重写引擎访问请求正文内容。
-
@CBroe 还有其他方法可以访问它吗?
-
serverfault.com/a/68395 还说您可能必须使用 mod_security。但您并没有具体说明到目前为止您已经尝试过什么,甚至没有具体说明您需要实现什么确切。
-
我没有看到一个直接的选项......问题是“$_POST 变量”是一个在 http 服务器级别(协议级别)上不存在的概念。所以无法处理。您确实必须为此使用额外的帮助脚本。但是您可以简单地将 all 请求重写为路由器脚本(类似于
index.php)并在那里进行过滤/路由。 -
@ThiefMaster。谢谢我知道。该计划比简单地过滤掉
<script>要深入得多。我只是以它为例。但我确实明白你的观点并完全同意你的看法。 :)