【问题标题】:Can you filter/inspect POST method/requests with htaccess?您可以使用 htaccess 过滤/检查 POST 方法/请求吗?
【发布时间】: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。谢谢我知道。该计划比简单地过滤掉&lt;script&gt; 要深入得多。我只是以它为例。但我确实明白你的观点并完全同意你的看法。 :)

标签: .htaccess query-string


【解决方案1】:

我也进行了研究并与我的托管公司进行了交谈。 如果您在共享主机上,同一服务器上的所有域共享相同的mod_security 设置,因此无法通过 htaccess 访问和/或编辑mod_security。如果可能,您将修改mod_security 以影响服务器上的所有网站。在共享主机上,只能通过 htaccess 检查$_GET 变量。

【讨论】:

    【解决方案2】:

    如果您使用共享便利,类似工作人员的所有空间共享类似的mod_security 设置,因此期望通过htaccess 访问或可能更改mod_security 是荒谬的。如果这是可以想象的,您将更改 mod_security 以影响工作人员的所有站点。在共享便利方面,很容易通过htaccess 审查$_GET 因素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 2017-07-28
      • 2011-10-27
      • 2013-06-22
      • 2012-04-06
      相关资源
      最近更新 更多