@Dreaded

Нужно ли как-то обрабатывать данные из GET запросов?

В данный момент изучаю PHP, и делаю учебный проект. И вот я задумался нужно ли как то обрабатывать данные которые я получаю от пользователя в виде GET запроса?
Банальный пример: если я в GET запросе пользователь введет вместо числового значения "?id=" другие данные, может ли это привести к XSS атаке ? Нужно ли делать проверку этих данных? И если да, то как?
  • Вопрос задан
  • 186 просмотров
Пригласить эксперта
Ответы на вопрос 3
OnYourLips
@OnYourLips
Никак не нужно заранее обрабатывать эти данные.

Нужно по месту применения этих данных их просто правильно применять. И в зависимости от этого применения - по-разному.
Ответ написан
@ipokos
нужно ли как то обрабатывать данные которые я получаю от пользователя в виде GET запроса

Да. и POST тоже. И вообще все что может отправить или сделать пользователь нужно проверять.

И если да, то как?

- Проверки делаете по возможности на клиенте (что б лишний раз не дергать бд и все остальное, если пользователь напихал чего то не того)
- проверки на сервере, т.к. запрос может быть отправлен без клиента.

Что именно проверять, зависит от того что ждете.
если ждете id и это может быть только число, проверяете на число или приводите к нему
... и т.п.
Очищать от мусора как вариант так
trim(stripslashes(htmlspecialchars( $yourVarible )));
Ответ написан
Надо ли что-то делать с входными данными зависит от того, что с ними дальше делаете.

Вставляете прямо в сборку строки SQL-запроса? (НЕ надо так делать!)
Показываете пользователю в теле страницы? (Надо фильтровать)

Есть готовые функции для валидации и фильтрации входных данных:

filter_input()

Например:
$query = filter_input(
  INPUT_GET,
  'q',
  FILTER_SANITIZE_STRING,
  FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH | FILTER_FLAG_STRIP_BACKTICK
);


См. подробнее Очищающие фильтры.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы