mysql_real_escape_string () для переменных $ _SESSION необходимо? - PullRequest
5 голосов
/ 23 января 2010

Должен ли я использовать функцию mysql_real_escape_string() в моих запросах MySQL для $_SESSION переменных? Теоретически, переменные $_SESSION не могут быть изменены конечным пользователем в отличие от $_GET или $_POST переменных, верно?

Спасибо:)

Ответы [ 4 ]

4 голосов
/ 23 января 2010

Не экранируйте / цитируйте / кодируйте текст, пока не окажетесь там, где вам это нужно. Внутренние представления должны быть как можно более «сырыми».

4 голосов
/ 23 января 2010

Независимо от того, может ли пользователь изменить данные, вы, вероятно, все равно захотите его избежать, если вам когда-нибудь понадобятся данные, содержащие символы, которые могут нарушить SQL (кавычки и т. Д.).

Еще лучше, используйте связанные параметры, и вам не придется об этом беспокоиться.

3 голосов
/ 23 января 2010

Вы можете ответить на вопрос самостоятельно, следуя этой строке рассуждений:

Получено ли значение в $ _SESSION из пользовательского ввода?

Если так, это уже было продезинфицировано?

1 голос
/ 23 января 2010

Теоретически, переменные $ _SESSION не могут быть изменены конечным пользователем

Нет, но данные, должно быть, откуда-то пришли.

Вы должны экранировать любой вывод из PHP, используя метод appopriate для пункта назначения в точке, в которой он покидает PHP.

С

...