Ошибка Apache 500 при загрузке больших файлов (безопасность модов)


Насколько я пробовал, ни одно из обычных решений не работает для меня. Ну, моя проблема, я получаю ошибку 500 каждый раз, когда загружаю "большой файл" (600 КБ ~), с меньшими изображениями он работает нормально. Итак..., даже с этим (экстремальным) файлом .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), чтобы (я думаю) разрешить загрузку этого "большого" файла. Я запускаю PHP 5.3 в Apache 2.4/CentOS 7.

Спасибо.

Author: Octal, 2015-07-27

4 answers

Тот факт, что у вас есть ModSecurity alert, означает, что у вас не может быть пустой папки activated_rules, или вы включаете правила каким-либо другим способом.

ModSecurity по умолчанию разрешает загрузку только 512 Кб (см. здесь), но вы можете легко увеличить этот объем до 1 Гб, что может решить вашу проблему, добавив следующую конфигурацию

SecResponseBodyLimit 1048576

Или, в качестве альтернативы, просто отключите это правило (я предполагаю, что это правило 960915, которое срабатывает, если вы используете основной набор правил OWASP):

SecRuleRemoveById 960915
 4
Author: Barry Pollard, 2017-10-18 12:31:29

Попробуйте проверить параметр FcgidBusyTimeout в конфигурации fcgi

 0
Author: sriharichander, 2015-07-27 17:27:42

Переименуйте файл, который вы пытаетесь загрузить. Эта ошибка указывает на то, что имя файла содержит символ, запрещенный mod_security. Переименуйте файл, а затем попробуйте загрузить его снова. Отключив указанную строку в файле mod_security.conf, он с радостью пропустит эту проверку, но это оставит ваш сервер открытым для уязвимостей.

 -1
Author: Nilpo, 2016-01-22 23:41:29

Все, я нашел РЕШЕНИЕ!!!

UBUNTU 16.04 + Apache (МОЙ mod_secure РАБОТАЕТ И ЗАГРУЖАЕТСЯ НОРМАЛЬНО)

0. заголовки apache a2enmod (активировать заголовки и .htaccess)

1. ПРОВЕРЬТЕ.htaccess!!!!!

//в.htaccess

Php_ Значение upload_max_filesize 50 М

Php_ Значение post_max_size 50 М

//если вы хотите настроить .htaccess

<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
  1. https://www.maketecheasier.com/securing-apache-ubuntu / инструкция для команд

Sudo nano/etc/apache2/с поддержкой модов/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. При желании вы можете удалить определенные правила:

Http://www.inmotionhosting.com/support/website/modsecurity/find-and-disable-specific-modsecurity-rules

Секретный идентификатор 950004 в modsecurity.conf

4. Байт-преобразователь - http://whatsabyte.com/P1/byteconverter.htm

ЭТОГО ДОСТАТОЧНО!!!!

4 часа!!

 -1
Author: Dmitry Matrosov, 2017-10-18 11:16:41