Возможные дубликаты:
PHP: полная чистая / безопасная функция
Каков наилучший метод для дезинфекции пользовательского ввода с помощью PHP?
Что я должен добавить к своей функции, чтобы убедиться, что каждая строка, которая ее передает, будет «дружественной к серверу»? Я использую эту небольшую функцию для проверки входов, содержащих имена, адреса электронной почты и идентификаторы.
function checkInput($str) { $str = @strip_tags($str); $str = @stripslashes($str); $str = mysql_real_escape_string($str); return $str; }
Я бы удалил некоторые специальные символы, которые не имеют ничего общего с такими строками и могут использоваться для инъекций кода, например $% # <> | и так далее.
$invalid_characters = array("$", "%", "#", "<", ">", "|"); $str = str_replace($invalid_characters, "", $str);
Что означает сервер?
Для проверки, например, адресов электронной почты, обратите внимание на фильтрацию данных .
Чтобы убедиться, что строка безопасна для использования базы данных, например, mysql_real_escape_string
При htmlspecialchars
данных используйте htmlspecialchars
О базе данных, проверьте заполнители PDO . Это перекрестная СУБД.
Что я должен добавить к своей функции, чтобы убедиться, что каждая строка, которая ее передает, будет «дружественной к серверу»?
Это должно работать:
function checkInput($str) { return ""; }
Более подробное объяснение см. Здесь.