Записи по тегу: защита

Никогда не доверяй своим пользователям

1 комментарий

«Не доверяйте своим пользователям. Они могут навредить Вам.»
Дэйв Чайлд

Дэйв Чайлд (Dave Child) стоит за недавно переименованным Added Bytes (ранее ilovejackdaniels.com, сейчас www.addedbytes.com) — сайтом, где приводятся написанные Дэйвом шпаргалки по многим языкам программирования. Он работал на многие компании в Великобритании и добился признания в мире программирования.

«Итак, главное правило веб-разработки: никогда, ни при каких обстоятельствах не доверяй своим пользователям. Предполагай, что любые данные, которые сайт получает от пользователя, содержат вредоносный код. Всегда. Включая и данные, которые ты проверил на стороне клиента, например, с помощью JavaScript. Если ты сможешь этим руководствоваться, это станет залогом твоего успеха. Если безопасность в PHP важна для тебя, этот единственный пунктик самый важный для усвоения.»

Теперь разберем все возможные данные передающиеся от пользователя в контексте PHP, а точнее глобальные массивы $_GET, $_POST, $_COOKIE, $_SERVER, $_SESSION и $_ENV.

Дада! $_SERVER, $_SESSION и $_ENV — тоже не безопасны!

PS: статья — НЕ перевод, как может показаться из вступления. Я привел лишь очень удачную цитату. А сама статья — это описание моей личной точки зрения.
Читать далее →

Реализация Captcha без БД

16 комментариев

На данный момент все известные капчи делятся на категории

  • Хранение некоего ключа в базе данных
  • Хранение некоего ключа в сессии
  • Без хранения каких либо данных

Минусы первых двух видов — это необходимость работы с файлами (для БД — операции запись/чтение, а  для сессий это еще и создание файлов). Плюсы же — это высокая защищенность и простая реализация.

На данный момент все известные реализации капчи из третьей категории являются не защищенными. Но плюс у них — это отсутствие работы с файлами. Допустим при массовой атаке спам ботов не засирается таблица в БД и не засирается папка с сессиями. Читать далее →