Это безопасная / сильная функция очистки входных данных? - PullRequest
2 голосов
/ 30 августа 2010

Это функция очистки, использованная в книге, из которой я недавно узнал - Самс учит себя Ajax, JavaScript и PHP все в одном .

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

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

Ответы [ 2 ]

8 голосов
/ 30 августа 2010

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

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

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

1 голос
/ 30 августа 2010

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

...