Мой администратор сервера недавно обновился до PHP 5.3, и у меня появляется странная "ошибка" (или функция , как говорят специалисты по PHP). У меня было mysql_real_escape_string
вокруг большей части моих данных строковой формы из очевидных соображений безопасности, но теперь кажется, что это экранирование уже выполнено PHP.
<?php
echo $_GET["escaped"];
?>
<form method="get">
<input type="text" name="escaped" />
</form>
Это выводит, если я ввожу, например, escape 'this test'
, escape \'this test\'
. То же самое происходит, если я использую POST
вместо GET
.
Связано ли это напрямую с обновлением 5.3, или мой администратор мог активировать автоматический переключатель в файле php.ini?
Кроме того, следует ли мне просто оставить его как есть (в случае, если это действительно хороший механизм защиты от сбоев, который правильно улавливает все переменные получения и публикации), или я должен отключить его (если это вообще возможно!) И вернуться к mysql_real_escape_string
? Моя интуиция подсказывает мне, что подход 2 был бы лучшим, но подход 1 был бы в некоторой степени автоматическим. :)
РЕДАКТИРОВАТЬ: На самом деле мне нужно отключить его. Иногда я собираю данные формы и повторно отправляю их в форму клиента, если что-то пошло не так (например, отсутствует поле), поэтому я не хочу, чтобы у него / нее появлялись косые черты из ниоткуда.
php.ini
файл содержит синтаксическую ошибку, по умолчанию включеноmagic_quotes_gpc
. Поэтому, если вы считаете, что отключилиmagic_quotes_gpc
в своем файле конфигурации, возможно, файл может содержать ошибку, препятствующую применению вашей конфигурации. Личный опыт. :П - person Joshua Burns   schedule 29.04.2013