大文件上传时的Apache错误500(mod_security)

时间:2015-07-27 17:17:38

标签: php apache .htaccess centos7 mod-security

据我所知,通常的解决方案都不适用于我。好吧,我的问题,我每次上传“大文件”(600 KB~)时都会收到500错误,较小的图像可以正常工作。所以...,即使有这个(极端).htaccess文件,它仍然会发生,是的,.htaccess是活跃的:

upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 128M
max_input_time = 6000
max_execution_time = 6000

所以,我看一下日志并找到它(只有一行,只是将其粘贴为易于阅读的行跳转):

[Mon Jul 27 17:09:28.<port> 2015] [:error] [pid 21423] [client <ip>]    
ModSecurity: Access denied with code 44 (phase 2). 
Match of "eq 0" against "MULTIPART_UNMATCHED_BOUNDARY" required. 
[file "/etc/httpd/conf.d/mod_security.conf"] 
[line "35"] [id "<another id>"] 
[msg "Multipart parser detected a possible unmatched boundary."] 
[hostname "<my host>"] [uri "<my script>"] [unique_id "<id (useless I think)"]

但是,现在我无法找到如何编辑mod_security(它有默认配置和空的activated_rules)配置顺序(我认为)允许这个“大”文件上传。我在Apache 2.4 / CentOS 7中运行PHP 5.3。

感谢。

5 个答案:

答案 0 :(得分:4)

您拥有ModSecurity alert的事实意味着您不能拥有空的activated_rules文件夹,或者您以其他方式包含规则。

ModSecurity默认只允许上传512kb(请参阅here),但您可以轻松地将其增加到1Gb,这可能会通过添加以下配置来解决您的问题

SecResponseBodyLimit 1048576

或者只是关闭那个规则(我假设它是规则960915,如果您使用的是OWASP核心规则集则触发):

SecRuleRemoveById 960915

答案 1 :(得分:0)

尝试检查fcgi配置中的FcgidBusyTimeout参数

答案 2 :(得分:0)

我遇到了同样的错误:

ModSecurity: Access denied with code 44 (phase 2). Match of "eq 0" against "MULTIPART_UNMATCHED_BOUNDARY" required. [file "/etc/httpd/conf.d/mod_security.conf"] [line "34"] [id "200003"] [msg "Multipart parser detected a possible unmatched boundary."] 

但是@nilpo 的回答是正确的 由于图像名称和更改名称问题解决后,我遇到了这个问题。

但这不是我想要的,因为我知道解决方案,但我的客户不知道他们必须更改名称。

答案 3 :(得分:-1)

重命名您尝试上传的文件。此错误表示文件名包含mod_security不允许的字符。重命名该文件,然后再次尝试上传。通过禁用mod_security.conf中提到的行,它将很乐意跳过此检查,但这会使您的服务器容易受到漏洞的攻击。<​​/ p>

答案 4 :(得分:-1)

所有我找到解决方案!!!

UBUNTU 16.04 + Apache(我的mod_secure工作和上传确定)

<强> 0。 apache a2enmod headers (激活标题和.htaccess)

<强> 1。检查.htaccess !!!!!

//在.htaccess

php_value upload_max_filesize 50M

php_value post_max_size 50M

//如果你想在.htaccess中定制

<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
  1. https://www.maketecheasier.com/securing-apache-ubuntu/命令说明
  2. sudo nano /etc/apache2/mods-enabled/security2.conf - 最后2行我发表评论

    sudo nano /etc/modsecurity/modsecurity.conf - 配置mod_secure很容易

    sudo nano /etc/apache2/apache2.conf - apache配置CTRL + W

    //开/关

    bash->a2dismod mod-security2 //off
    

    bash->a2dismod security2 //off
    
    
    bash->a2enmod mod-security2 //on
    bash->a2enmod security2 //on
    
    1. 如果您愿意,可以删除特定规则:
    2. http://www.inmotionhosting.com/support/website/modsecurity/find-and-disable-specific-modsecurity-rules

      modsecurity.conf中的SecRuleRemoveById 950004

      <强> 4。字节转换器 - http://whatsabyte.com/P1/byteconverter.htm

      这是真的!!!!

      4小时!!