Ошибка 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.
Спасибо.
4 answers
Тот факт, что у вас есть ModSecurity alert
, означает, что у вас не может быть пустой папки activated_rules, или вы включаете правила каким-либо другим способом.
ModSecurity по умолчанию разрешает загрузку только 512 Кб (см. здесь), но вы можете легко увеличить этот объем до 1 Гб, что может решить вашу проблему, добавив следующую конфигурацию
SecResponseBodyLimit 1048576
Или, в качестве альтернативы, просто отключите это правило (я предполагаю, что это правило 960915, которое срабатывает, если вы используете основной набор правил OWASP):
SecRuleRemoveById 960915
Попробуйте проверить параметр FcgidBusyTimeout в конфигурации fcgi
Переименуйте файл, который вы пытаетесь загрузить. Эта ошибка указывает на то, что имя файла содержит символ, запрещенный mod_security. Переименуйте файл, а затем попробуйте загрузить его снова. Отключив указанную строку в файле mod_security.conf, он с радостью пропустит эту проверку, но это оставит ваш сервер открытым для уязвимостей.
Все, я нашел РЕШЕНИЕ!!!
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>
- 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
- При желании вы можете удалить определенные правила:
Секретный идентификатор 950004 в modsecurity.conf
4. Байт-преобразователь - http://whatsabyte.com/P1/byteconverter.htm
ЭТОГО ДОСТАТОЧНО!!!!
4 часа!!