Является ли это безопасной / сильной функцией дезинфекции входа?

Это функция санитизации, используемая в книге, которую я недавно узнал из – Sams Teach Yourself Ajax, JavaScript и PHP All in One .

Я использую его на своем собственном сайте PHP. Безопасно ли это для использования в реальном мире?

function sanitizestring($var) { $var = strip_tags($var); $var = htmlentities($var); $var = stripslashes($var); return mysql_real_escape_string($var); } 

Solutions Collecting From Web of "Является ли это безопасной / сильной функцией дезинфекции входа?"

Я бы сказал, что это слишком общее. Он может быть безопасным для многих применений, но он часто дает нежелательные побочные эффекты для строк. Не каждая строка должна быть экранирована таким образом.

  • mysql_real_escape_string() следует использовать только в SQL-запросах. Еще лучше привяжите параметры с PDO.
  • Почему вы хотите обменивать стрипы и кодировать объекты перед вставкой в ​​базу данных? Может быть, сделай это по пути.
  • Для предотвращения XSS htmlspecialchars() больше относится к вашему другу. Дайте ему набор символов в качестве аргумента.

Поэтому я хотел бы использовать mysql_real_escape_string() для запросов и htmlspecialchars() для повторения переданных пользователем строк. Существует также гораздо больше информации. Сделайте некоторые дополнительные чтения .

Вы также можете рассмотреть фильтр-вход с теми фильтрами, которые применяются к этой области .