Я пытаюсь объединить функцию общего назначения, которая будет дезинфицировать входные данные в базу данных Mysql. До сих пор это то, что у меня есть:функция для дезинфекции ввода базы данных Mysql
function sanitize($input){
if(get_magic_quotes_qpc($input)){
$input = trim($input); // get rid of white space left and right
$input = htmlentities($input); // convert symbols to html entities
return $input;
} else {
$input = htmlentities($input); // convert symbols to html entities
$input = addslashes($input); // server doesn't add slashes, so we will add them to escape ',",\,NULL
$input = mysql_real_escape_string($input); // escapes \x00, \n, \r, \, ', " and \x1a
return $input;
}
}
Если я понял определение get_magic_quotes_qpc()
. Это устанавливается сервером php для автоматического выхода из символов вместо использования addslashes()
.
Правильно ли я использовал addslashes()
и mysql_real_escape_string()
, и есть ли что-нибудь еще, что я мог бы добавить для повышения санитарии.
Благодаря
Сочетание как можно большего количества экранирующих функций не является хорошим подходом. Вы просто получите тройные экранированные данные и не сможете использовать его ни для чего, кроме вывода in-html. – mario
См. Также [Метод для дезинфекции ввода пользователя] (http://stackoverflow.com/questions/129677/whats-the-best-method-for-sanitizing-user-input-with-php) -and- [Что такое наилучшие функции деструкции ввода PHP?] (http://stackoverflow.com/questions/3126072/what-are-the-best-php-input-sanitizing-functions) – mario
Возможный дубликат [Рекомендуется использовать функцию сантирования, которая объединяет два или более встроенных в санирующие функции в php?] (http://stackoverflow.com/questions/8800986/is-it-recommended-to-have-a-santizing-function-that-combines-two-or-more -built-i) – mario