Тебе тоже следует сбежать "
. Это намного больше вреда, чем '
, потому что вы часто заключаете атрибуты HTML в "
. Но почему бы вам не использовать htmlspecialchars
для этой работы?
Далее: не хорошо использовать одну экранирующую функцию для SQL и HTML. HTML нуждается в экранировании тегов, а SQL - нет. Поэтому было бы лучше, если бы вы использовали htmlspecialchars
для вывода HTML и PDO::quote
(или mysql_real_escape_string
или что вы используете) для запросов SQL.
Но я знаю (из своего собственного опыта), что выход из пользовательского ввода в SQL-запросах может быть действительно раздражающим, и иногда я просто не избегаю частей, потому что я думаю, что они "безопасны". Но я уверен, что я не всегда прав насчет такого предположения. Итак, в конце я хотел убедиться, что я действительно экранировал все переменные, используемые в запросе SQL, и поэтому написал небольшой класс, чтобы сделать это легко: http://github.com/nikic/DB Может быть, вы хотите что-то использовать тоже похоже.