Допустим, у нас есть текстовое поле для ввода
Только после того, как нажата кнопка submit инициализируем переменную, чтобы не расходовать зря память.
Во время инициализации используем функцию htmlspecialchars и addslashes
при заносе в базу используем mysql_real_escape_string
Достаточно ли этого для безопасности?
Спустя 1 час, 14 минут, 31 секунда (8.11.2010 - 11:20) Белый Тигр написал(а):
Смотря где данные используются потом. Если выводятся на экран - используем htmlspecialchars(..., ENT_QUOTES)
Если ходят где-то внутри программы и попадают в SQL-запросы добавляем сюда mysql_real_escape_string()
Обратите внимание на то что addslashes() и mysql_real_escape_string() - являются чуть ли не аналогами, поэтому 2 раза их использовать не обязательно. Предпочтение лучше отдать mysql_real_escape_string() т.к. она более грамотно работает с многобайтовыми кодировками.
Это лишь общие рекомендации. Нужно смотреть в каком контексте данные будут использоваться потом. Возможно что и этой фильтрации будет недостаточно.
Если ходят где-то внутри программы и попадают в SQL-запросы добавляем сюда mysql_real_escape_string()
Обратите внимание на то что addslashes() и mysql_real_escape_string() - являются чуть ли не аналогами, поэтому 2 раза их использовать не обязательно. Предпочтение лучше отдать mysql_real_escape_string() т.к. она более грамотно работает с многобайтовыми кодировками.
Это лишь общие рекомендации. Нужно смотреть в каком контексте данные будут использоваться потом. Возможно что и этой фильтрации будет недостаточно.