Пишем firewall на PHP
Надо отдать должное людям, которые работают в направлении безопасности web-ресурсов.
Буржуй-нет полон такого рода всякими скриптами. Например, недавно скачал для себя PHP Firewall. Скрипт поддерживает PHP 5, не нуждается в базе, прост в использовании и мало весит, ко всему этому нет затруднений в установке и работе, при наличии определенных навыков, мозга и более или менее ровных рук. PHP Firewall имеет свою систему сбора информации (логи), а также модуль email оповещения о тревоге. Нет необходимости использования .htaccess, хотя я в этом не уверен. Скрипт можно использовать для всех видов cms, блогов, форумов и всего что на ум придет.
- защита XSS
- защита от UNION SQL-инъекций
- защита от DOS
- защита include
- защита от червей
- серверная защита (не проверено)
- защита URL запроса
- профилактика Cookies
- профилактика запросов POST, GET
- запрет на сканирование IP
- блокировка спама с определенного IP
- комплексная защита IP
- сброс глобальных переменных PHP
Установка/внедрение PHP Firewall в сайт
- создать папку, например php-firewall/ в корне сайта
- выставить необходимые права доступа на файл php-firewall/logs.txt (например, 755)
- добавить строки в основной код страницы сайта
< ?php define('PHP_FIREWALL_REQUEST_URI', strip_tags( $_SERVER['REQUEST_URI'] ) ); define('PHP_FIREWALL_ACTIVATION', true ); if ( is_file( @dirname(__FILE__).'/php-firewall/firewall.php' ) ) include_once( @dirname(__FILE__).'/php-firewall/firewall.php' ); ?> |
Для деактевации PHP Firewall, редактируйте строку:
define('PHP_FIREWALL_ACTIVATION', false ); |
Конфигурирование PHP Firewall
Вы можете активировать/деактивировать большинство функций защиты в PHP Firewall. Для этого необходимо открыть файл php-firewall/firewall.php. Все параметры, находящиеся между строками 23 и 39 и которые имеют true/false можно редактировать, соответственно включая/отключая их.
define('PHP_FIREWALL_ADMIN_MAIL', '' ); // напишите свою электронную почту и PHP Firewall оповестит о несанкционированном доступе define('PHP_FIREWALL_PUSH_MAIL', false ); // отчет работы системы на электронную почту define('PHP_FIREWALL_LOG_FILE', 'logs' ); // название файла сбора статистики ‘logs’ для PHP Firewall define('PHP_FIREWALL_PROTECTION_RANGE_IP_DENY', true ); // блокатор занятых IP define('PHP_FIREWALL_PROTECTION_RANGE_IP_SPAM', true ); // блокатор IP-спамеров define('PHP_FIREWALL_PROTECTION_URL', true ); // URL защита define('PHP_FIREWALL_PROTECTION_REQUEST_SERVER', true ); // защита запросов define('PHP_FIREWALL_PROTECTION_SANTY', true ); // защита от червя define('PHP_FIREWALL_PROTECTION_BOTS', true ); // защита от ботов define('PHP_FIREWALL_PROTECTION_REQUEST_METHOD', true ); // Bad method protection define('PHP_FIREWALL_PROTECTION_DOS', true ); // Mini dos защита define('PHP_FIREWALL_PROTECTION_UNION_SQL', true ); // защита от sql-инъекций define('PHP_FIREWALL_PROTECTION_CLICK_ATTACK', true ); // включает защиту файлов define('PHP_FIREWALL_PROTECTION_XSS_ATTACK', true ); // защита от XSS define('PHP_FIREWALL_PROTECTION_COOKIES', true ); // защита cookies define('PHP_FIREWALL_PROTECTION_POST', true ); // защита POST vars define('PHP_FIREWALL_PROTECTION_GET', true ); // защита GET vars |
PHP Firewall, небольшой примечательный скрипт, имеющий массу достоинств, осталось только проверить недостатки. :]
сайт разработчика (см. www.php-firewall.info)
огромное спасибо за статью, очень актуально
Фаервол на скриптовом языке — что то новое. Такие вещи нужно решать на уровне сервера.
Вау такая находка,спасибо,скачиваю)
гавно полное брет вообще школяр вообще писал какойто
ddd:
скрипт с буржуйского скриптохранилища, лично писаку не знаю, но я б на его месте обиделся -))
Спасибо! Помогло
говно, черный список не в состоянии защитить веб.
А если и в состоянии то временно.
Вот бесплатно, с граф. интерфейсом и белый список.
https://github.com/shaman33/web_app_firewall/