在我们当前的环境中,我们有一个面向 Internet 的 Web 应用程序,并且所有传入的流量都通过 apache 反向代理路由。在这个反向代理上,我们也配置了 ModSecurity。
现在,我们的一些入站请求具有 content-type=text/plain。所有这些请求都被 ModSec 规则集阻止,日志如下:
[Tue Jan 10 11:14:31 2017] [error] [client 175.45.116.65] ModSecurity: [file "/etc/httpd/conf/crs/activated_rules/modsecurity_crs_30_http_policy.conf"] [line "64"] [id "960010"] [rev "2"] [msg "Request content type is not allowed by policy"] [data "text/plain"] [severity "CRITICAL"] [ver "OWASP_CRS/2.2.6"] [maturity "9"] [accuracy "9"] [tag "OWASP_CRS/POLICY/ENCODING_NOT_ALLOWED"] [tag "WASCTC/WASC-20"] [tag "OWASP_TOP_10/A1"] [tag "OWASP_AppSensor/EE2"] [tag "PCI/12.1"] Access denied with code 403 (phase 1). Match of "rx ^%{tx.allowed_request_content_type}$" against "TX:0" required. [hostname "hadToRemove"] [uri "hadToRemove"] [unique_id "WHQnZwoMD1QAACBlB70AAAAN"]
现在,如果我们想允许 text/plain 作为可接受的内容类型,我们应该如何添加它。我们已经有一个 conf 文件,我们在其中禁用/自定义了一些规则。我只是不知道如何添加这个。
PS:根据这篇文章(https://github.com/SpiderLabs/owasp-modsecurity-crs/issues/208),这个问题已经修复,但我们将升级我们的规则集。