Я понимаю, что параметризованные запросы имеют важное значение, когда данные, представленные пользователем, находятся в поиске, однако мой вопрос заключается в том, относится ли это к данным пользователя TAMPERABLE?
Поэтому, если у нас есть URL-адрес, например «… /? Id = 1», было бы необходимо подготовить любое выражение с помощью $ id или устранить угрозу?
Джо
Почему бы вам не использовать подготовленные операторы / параметризованные запросы для всех ситуаций, где есть внешний / переменный вход?
Единственными запросами, которыми вы можете доверять, являются те, где каждый элемент жестко закодирован или выведен из жестко заданных элементов в вашем приложении.
Не доверяйте данным, которые вы вытащили из своей собственной базы данных. Это считается внешним / переменным. Усовершенствованная атака может использовать больше векторов, чем простое «изменение параметра строки запроса».
Я думаю, что для крошечного количества дополнительных накладных расходов кода, это полностью стоит спокойствие, которое вы получите, зная, что ваши запросы защищены.
Кодировка URL не удаляет угрозу.
Все, что доступно пользователю, должно рассматриваться как опасное и потенциальная угроза. Вы запрашиваете id
как таковой, не проверяя его и просто перетаскивая его прямо в запрос, все равно могут вызвать те же проблемы с инъекцией, что и не использовать PDO.