mysql_real_escape_string() для переменных $_SESSION необходим?
-
22-09-2019 - |
Вопрос
Должен ли я использовать mysql_real_escape_string()
функция в моих запросах MySQL для $_SESSION
переменные?Теоретически $_SESSION
переменные не могут быть изменены конечным пользователем, в отличие от $_GET
или $_POST
переменные, верно?
Спасибо :)
Решение
Независимо от того, может ли пользователь изменять данные, вы, вероятно, все равно захотите экранировать их на случай, если вам когда-нибудь понадобятся данные, содержащие символы, которые могут нарушить SQL (кавычки и т. д.).
А еще лучше — используйте связанные параметры, и вам не придется об этом беспокоиться.
Другие советы
Не экранируйте/цитируйте/кодируйте текст, пока не дойдете до того места, где он вам нужен.Внутренние представления должны быть максимально «сырыми».
Вы можете ответить на этот вопрос самостоятельно, следуя следующей цепочке рассуждений:
Было ли значение в $_SESSION получено пользователем?
Если да, то было ли оно уже продезинфицировано?
Теоретически переменные $_SESSION не могут быть изменены конечным пользователем.
Нет, но данные откуда-то должны были взяться.
Вам следует избегать любого вывода PHP, используя соответствующий метод для места назначения в той точке, в которой он покидает PHP.
С.