«Не доверяйте своим пользователям. Они могут навредить Вам.»
Дэйв Чайлд
Дэйв Чайлд (Dave Child) стоит за недавно переименованным Added Bytes (ранее ilovejackdaniels.com, сейчас www.addedbytes.com) — сайтом, где приводятся написанные Дэйвом шпаргалки по многим языкам программирования. Он работал на многие компании в Великобритании и добился признания в мире программирования.
«Итак, главное правило веб-разработки: никогда, ни при каких обстоятельствах не доверяй своим пользователям. Предполагай, что любые данные, которые сайт получает от пользователя, содержат вредоносный код. Всегда. Включая и данные, которые ты проверил на стороне клиента, например, с помощью JavaScript. Если ты сможешь этим руководствоваться, это станет залогом твоего успеха. Если безопасность в PHP важна для тебя, этот единственный пунктик самый важный для усвоения.»
Теперь разберем все возможные данные передающиеся от пользователя в контексте PHP, а точнее глобальные массивы $_GET, $_POST, $_COOKIE, $_SERVER, $_SESSION и $_ENV.
Дада! $_SERVER, $_SESSION и $_ENV — тоже не безопасны!
PS: статья — НЕ перевод, как может показаться из вступления. Я привел лишь очень удачную цитату. А сама статья — это описание моей личной точки зрения.
Читать далее →