Sep 17, 2010 00:19
Одного разу я хакнув свій сайт, іншого разу хакнули один з сайтів мого клієнта.
Ці хаки були через SQL-injection.
Отже, які методи захисту найпоширеніші:
1 - екранування даних запиту в одинарні лапки '
2 - перевірка числових значень функцією intval
2.a - перевірка регулярними виразами, наприклад при mod_rewrite
3 - перевірка на входження спец.слів в переданих даних: "select", "union", "order", "char", "where", "from"
4 - використання функції mysql_escape_string (або addslashes)
Але: деякі з них не дають впевненості, деякі будуть видалені в нових версіях PHP.
То ж що робити :))
Ха, невже ніхто не чув про prepared statements?
Звісно, з ними не все так добре як би того хотілося, але в більшості випадків дозволяють уникнути SQL-ін"єкцій
sql-injection,
php,
захист