【问题标题】:.htaccess and Apache ModSecurity.htaccess 和 Apache ModSecurity
【发布时间】:2016-06-28 08:36:53
【问题描述】:

我有这个 .htaccess

选项 - 索引 重写引擎开启 RewriteBase / # 强制排除尾部斜杠 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.*)/$ 重写规则 ^(.+)/$ $1 [R=307,L] # 限制php文件直接访问 # 这部分产生问题 RewriteCond %{THE_REQUEST} ^.+?\ [^?]+\.php[?\ ] 重写规则 \.php$ - [F] # 允许直接显示任何存在的文件或目录 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?$1 [QSA,L]

但是 apache 给我写了这个:

ModSecurity:警告。需要匹配“在 %{tx.allowed_methods} 内”与“REQUEST_METHOD”。 [file "/modsecurity/modsecurity_crs_30_http_policy.conf"] [line "31"] [id "960032"] [rev "2"] [msg "Method is not allowed by policy"] [data "GET"] [severity "CRITICAL "] [ver "OWASP_CRS/2.2.9"] [成熟度 "9"] [准确度 "9"] [标签 "OWASP_CRS/POLICY/METHOD_NOT_ALLOWED"] [标签 "WASCTC/WASC-15"] [标签 "OWASP_TOP_10/A6 "] [标签 "OWASP_AppSensor/RE1"] [标签 "PCI/12.1"]

我必须如何编辑我的 htaccess?谢谢大家。

【问题讨论】:

  • Mod security 和 htaccess 是两种不同的技术。您的规则在 mod_sec 中匹配 OWASP 规则集,而不是在 htaccess 中
  • 谢谢,但我无法编辑主机的 pache 配置。我已将 php 的版本从 5.5 更改为 5.3

标签: php apache .htaccess mod-rewrite


【解决方案1】:

正如第一条评论所说,您有一个 ModSecurity 规则阻止您的请求。如果您的托管服务提供商在构建 ModSecurity 时启用了“--enable-htaccess-config”,那么您可以从 htaccess 文件中禁用该特定规则。您可以使用类似于以下内容的内容:

<IfModule mod_security.c> SecRuleRemoveById 960032 </IfModule>

但是,如果您的提供商未启用此功能,并且您无权访问任何 Apache 配置文件(httpd.conf 等)。然后,您将不得不联系您的托管服务提供商来解决问题。对不起

【讨论】:

    猜你喜欢
    • 2016-10-03
    • 1970-01-01
    • 2016-01-19
    • 2012-03-30
    • 2017-01-20
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多