Зачем использовать mySQL_REAL_ESCAPE_STRING (), поскольку $ _post добавляет черты перед автоматической цитатой?
-
20-09-2019 - |
Вопрос
В PHP $ _post Добавьте черты перед автоматической оценкой кавычки, так зачем применять MySQL_REAL_ESCAPE_STRING ()? Например, когда я ввожу 'rrr
в поле ввода, и я получаю \'rrr
Когда я повторяю это.
Решение
Потому что это происходит только в том случае, если Macigquotes включен в вашей конфигурации PHP, которая, насколько я знаю, в настоящее время довольно редко. Кроме того, mysql_real_escape_string также избегает других символов, связанных с MySQL.
Проверить http://php.net/manual/en/security.magicquotes.php Для получения дополнительной информации о магических цитатах.
Как вы можете видеть, уже есть предупреждение о том, что для этой директивы, вы должны проверить конфигурацию вашего сервера в любом случае ^^
РЕДАКТИРОВАТЬ: чтобы отключить магические цитаты, поиск в папке XAMPP для php.ini и добавить или изменить, если присутствуют, следующие директивы:
; Magic quotes ; ; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc = Off ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. magic_quotes_runtime = Off ; Use Sybase-style magic quotes (escape ' with '' instead of \'). magic_quotes_sybase = Off
Другие советы
- mysql_real_escape_string сбегает больше, чем просто одноразовые, потому что есть и другие символы, которые могут вызвать проблемы впрыска.
- PHP только добавляет черты к опубликованному входу, если включен Magic_quotes, что считается плохой практикой (потому что это приводит к лени и не использует такие вещи, как real_escape_string!)
Magic quotes was deprecated as of PHP 5.3.0 and is obsolete as of PHP 6.0.
Edit: So the auto slashes can't be relied on because they are deprecated by most PHP installations, and soon will not work at all.