Пишем плагин для защиты от зловредных url-запросов

Секреты продвижения сайтов

В чём проблема?
Хакеры и недохакеры всех родов очень часто пытаются найти слабые места при помощи всевозможных зловредных запросов. WordPress неплохо защищён от этого, но лишняя защита никогда не повредит.

Что делаем?
Создаём новый файл под названием blockbadqueries.php и помещаем его в папку wp-content/plugins. Затем просто активируйте его в админке как любой другой плагин.

<?php
/*
Plugin Name: Block Bad Queries
Plugin URI: perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests
Description: Protect WordPress Against Malicious URL Requests
Author URI: perishablepress.com
Author: Perishable Press
Version: 1.0
*/
global $user_ID;
 

if($user_ID) {

if(!current_user_can(‘level_10’)) {

if (strlen($_SERVER[‘REQUEST_URI’]) > 255 ||

strpos($_SERVER[‘REQUEST_URI’], «eval(«) ||

strpos($_SERVER[‘REQUEST_URI’], «CONCAT») ||

strpos($_SERVER[‘REQUEST_URI’], «UNION+SELECT») ||

strpos($_SERVER[‘REQUEST_URI’], «base64»)) {

@header(«HTTP/1.1 414 Request-URI Too Long»);

@header(«Status: 414 Request-URI Too Long»);

@header(«Connection: Close»);

@exit;

}

}

}

?>

Как это работает?
Работа этого плагина проста – он проверяет все длинные запросы (более 255 символов) и наличие php-функций eval или base64 в URI. Если что-то из этого находится, браузеру пользователя отдаётся страница с ошибкой 414.