У меня есть плагин WordPress, который пытается сохранить информацию, но блокируется. Это может быть ложным срабатыванием, я не уверен. Как я могу разрешить одному конкретному плагину обходить любое правило, которое вызывает его блокировку?
Ниже приведен код ошибки, который мне выдает хост.
[Tue Sep 29 08:50:45 2015] [error] [client xxx.xxx.xxx.xxx] ModSecurity: Access denied with code 403 (phase 2). Operator GT matched 15 at TX:sql_injection_score. [file "/etc/httpd/modsecurity.d/modsecurity_crs_49_inbound_blocking.conf"] [line "51"] [id "4049002"] [msg "SQL Injection Detected (score 20): XSS Attack Detected"] [hostname "xxxxx.com"] [uri "/wp-admin/admin.php"] [unique_id "VgqJJWjP6lgAAEaaTogAAAAZ"]
Это уже существующий плагин. Он называется WP Social Invitations — wordpress.org/plugins/wp-social-invitations. Честно говоря, большая часть этого находится у меня над головой. Я не уверен, какой код мне даже нужно показать вам. Разработчик сказал мне, что они используют таблицу wp_options WordPress по умолчанию для хранения данных, поэтому эта ошибка не должна возникать
Для начала ознакомьтесь с дополнительной информацией о ModSecurity:
"Отказ в доступе к ModSecurity" в логах. Я не понимаю, что это говорит мне .. Должен ли я быть обеспокоен?
Ошибка, которую вы указали, показывает, что по какой-то причине ModSecurity пометил запрос и заблокировал его.
Сработавшее правило (4049002) говорит, что порог пройден. Это должно означать, что предыдущие правила установили эту переменную. Поэтому вам нужно сообщить нам подробности о предыдущих ошибках, которые установили sql_injection_score — предположительно в строках чуть выше той, которую вы указали.
Кроме того, вы можете просто добавить следующую конфигурацию в конфигурацию Apache (например, файл .htaccess), чтобы вообще не запускать это правило:
SecRuleRemoveByID 4049002
Однако это снимает защиту, которую дает вам это правило для атак с использованием SQL-инъекций. Таким образом, лучший вариант — найти исходное правило (правила), которое вызвало это, и посмотреть, можете ли вы внести в белый список именно причину, а не общий список всего этого правила.
Других решений пока нет …