Как отключить mod_security в файле .htaccess?

Как отключить mod_security , используя файл .htaccess на сервере Apache?

Я использую WordPress в своем личном домене и размещаю сообщение, содержимое которого имеет некоторый блок кода, и, согласно моему хостинг-провайдеру, говорит, что mod_security дает ошибку, и мой IP-адрес перешел в брандмауэр из-за mod_security .

Поэтому я хочу отключить mod_security , используя файл .htaccess .

Это можно сделать, но, скорее всего, ваш хост внедрил mod_security по какой-то причине. Убедитесь, что они одобряют вас, отключая его для вашего собственного сайта.

Тем не менее, это должно сделать это;

 <IfModule mod_security.c> SecFilterEngine Off SecFilterScanPOST Off </IfModule> 

Если вышеприведенное решение не работает, попробуйте следующее:

 <IfModule mod_security.c> SecRuleEngine Off SecFilterInheritance Off SecFilterEngine Off SecFilterScanPOST Off SecRuleRemoveById 300015 3000016 3000017 </IfModule> 

Просто обновить этот вопрос для mod_security 2.7.0+ – они отключили возможность смягчать modsec через htaccess, если вы не скомпилируете его с флагом --enable-htaccess-config . Большинство хостов не используют этот параметр компилятора, так как он обеспечивает слишком слабую защиту. Вместо этого vhosts в httpd.conf – это ваша опция для управления modsec.

Даже если вы компилируете modsec с помощью htaccess mitigation, существует меньше директив. SecRuleEngine больше не может использоваться там, например. Вот список, который можно использовать по умолчанию в htaccess, если разрешено (помните, что хост может дополнительно ограничить этот список с помощью AllowOverride ):

  - SecAction - SecRule - SecRuleRemoveByMsg - SecRuleRemoveByTag - SecRuleRemoveById - SecRuleUpdateActionById - SecRuleUpdateTargetById - SecRuleUpdateTargetByTag - SecRuleUpdateTargetByMsg 

Дополнительная информация о официальной викторине modsec

В качестве дополнительной заметки для пользователей 2.x: IfModule теперь должен искать mod_security2.c вместо старого mod_security.c

На некоторых серверах и веб-хостах можно отключить ModSecurity через .htaccess , но только в полном объеме – вы не можете отключить отдельные правила.

Вместо того, чтобы отключать его для всего вашего сайта, лучше всего ограничить это конкретными URL-адресами. Вы можете указать, какие URL-адреса должны соответствовать регулярному выражению в инструкции <If> ниже …

 ### DISABLE mod_security firewall ### Some rules are currently too strict and are blocking legitimate users ### We only disable it for URLs that contain the regex below ### The regex below should be placed between "m#" and "#" ### (this syntax is required when the string contains forward slashes) <IfModule mod_security.c> <If "%{REQUEST_URI} =~ m#/admin/#"> SecFilterEngine Off SecFilterScanPOST Off </If> </IfModule> 

В файле .htaccess в корневом каталоге сайта измените следующую строку:

 <ifmodule mod_security.c> SecFilterEngine Off SecFilterScanPOST Off </ifmodule> <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> 

С некоторыми веб-хостами, включая NameCheap , невозможно отключить ModSecurity, используя .htaccess . Единственный вариант – связаться с технической поддержкой и попросить их изменить конфигурацию для вас.