Грешка "412 Precondition Failed" - използване на mod_security2Mod_security2 е модул на Apache 2, известен още като защитна стена за уеб приложения, който блокира определени заявки до уеб сървъра, като се ползва списък от предварително зададени правила. Тези правила включват блокиране на заявки, свързани с популярни атаки срещу сървъри, както и блокиране на заявки към уязвим софтуер. Тази допълнителна мярка за сигурност е активирана по подразбиране на нашите сървъри, тъй като се стремим да защитим максимално сайтовете на нашите клиенти от хакерски атаки. Възможно е определени легитимни заявки към сървъра също да бъдат блокирани, ако съвпаднат с определено правило. Когато това се случи, посетителят вижда грешката 412 Request Blocked (precondition failed). Деактивиране на mod_security2 за XML-RPC файловеПротоколът XML-RPC се използва от някои модули на WordPress, за да комуникира с външни ресурси. Най-популярните примери за това са разширението Jetpack и официалните мобилни приложения на WordPress. Всички IP адреси, използвани от Jetpack, са добавени към списък с разрешени адреси, така че всички заявки от тях към xmlrpc.php файлове няма да бъдат блокирани от mod_security2. За повече информация как да разрешите достъпа до този файл от раздел "WordPress мениджър" в Контролния панел, разгледайте нашата статия Разрешаване на достъп до XML-RPC. Ако сайтът Ви използва xmlrpc.php файл, но не е базиран на WordPress, Вие можете да деактивирате mod_security2 чрез добавяне на следното съдържание в .htaccess файла на Вашия сайт: Откриване на mod_security2 правило, което генерира грешка 412Ако виждате грешка 412 на определена страница от Вашия сайт, можете много лесно да откриете кое mod_security2 правило я предизвиква. Всичко, което трябва да направите, е да прегледате сървърните логове за грешки за Вашия сайт, следвайки тези стъпки:
Конкретното mod_security2 правило и файлът, които генерират грешката, ще бъдат показани в полетата id и uri на съобщението за грешка. В "Match" частта от mod_security2 съобщението, ще откриете обяснение на конкретното правило. В дадения по-горе пример достъпът до xmlrpc.php файлът е блокиран от mod_security2 правилото с идентификационен номер (id) 114, защото достъпът до файла е позволен само от IP адресите на Jetpack. Деактириване на отделно правилоПо подразбиране, някои възможно зловредни ботове са блокирани на нашите сървъри с mod_security2 правила. Това е списъкът с някои блокирани ботове, както и техните идентификационни номера (ID): "Havij" id:350 Ако желаете да разрешите достъпа до сайта Ви от някой от тези ботове, можете да деактивирате съответното mod_security2 правило в .htaccess файл в главната директория на Вашия сайт. Трябва да използвате директивата SecRuleRemoveById, последвана от идентификационния номер (ID) за съответното правило. Например, за да позволите достъп до сайта Ви от бота DotBot (който е блокиран с mod_security2 правило с идентификационен номер 410), трябва да добавите следния код към .htaccess файла на Вашия сайт: <IfModule security2_module> Деактивиране на mod_security2
Като алтернатива можете да спрете функциите на mod_security2 само в директорията, в която се намира скриптът, чието изпълнение предизвиква грешка. За да деактивирате mod_security2, създайте .htaccess файл в съответната директория със следното съдържание: |