如何使用apache / mod_security将文件夹或文件名中的外来字符列入白名单?

时间:2014-07-13 16:39:10

标签: apache whitelist mod-security extended-ascii

我的dir和文件名中有一些带有外来字符的图像文件,如Áü,当浏览器指向这些文件时,apache / mod_security正在回复Error 406 - Not acceptable

有没有办法让服务器显示这些文件,而不会使网站不安全?

编辑:在检查error_log和modsec2.user.conf之后,被触发的规则是

SecRule REQUEST_FILENAME|ARGS|ARGS_NAMES|REQUEST_HEADERS|!REQUEST_HEADERS:Referer 
"@validateUtf8Encoding" 
"deny,log,auditlog,msg:'UTF8 Encoding Abuse Attack Attempt',id:'1234123439',severity:'4'

由于

1 个答案:

答案 0 :(得分:0)

您能否提供有关日志文件内容的更多信息。哪条规则阻止了请求?

编辑:

@ validateUtf8Encoding确保检查的所有内容(在您的情况下:REQUEST_FILENAME | ARGS | ARGS_NAMES | REQUEST_HEADERS |!REQUEST_HEADERS:Referer)是有效的UTF-8。

另见:Modsecurity Handbook

现在我假设您的请求中的参数不是UTF-8编码的,但可能是ISO-Latin-1。例如,请参阅this post,其中参数“con”(id = 9& con = m%FCllrose& x = 0& y = 0)包含%FC,这是ISO-8859-1的有效代码,但不是UTF-8。在这种情况下,答案是“这条规则错误地假设UTF-8并导致误报。它应该被禁用。”

我猜你可以禁用规则或修改你的请求以确保它只包含UTF-8字符。

注意:如果您从错误日志中发布了条目,情况会更好。然后我们可以看到请求的哪一部分实际上违反了规则。