@MGriboedoff

Имеет ли смысл фильтровать пользовательский ввод для предупреждения SQL-инъекций?

Имеет ли смысл фильтровать пользовательский ввод для предупреждения SQL-инъекций?

Пишу небольшой фреймворк, возник вопрос (выше).
Сейчас немного опишу архитектуру: MVC, есть фронт контроллер (больше ничего не надо).
Написав router задумался о анализе uri и параметров запроса, а так же куков и прочего на предмет SQL-инъекций.
Стоит ли нагружать этим функционалом роутер?

Зачем? чтобы уже при попытке "ввода инъекции" уже ничего не запускать и не выполнять (роутер сразу вызовет шаблон 404 и в админке в логах появиться алерт).

P.S>
prepared statements - да, разумеется, будет обертка PDO с подготовленными выражениями.
  • Вопрос задан
  • 2589 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Нет.

Всякие идеи о подобной "фильтрации" следует выкинуть навсегда из головы.

Апдейт.
Ну вот, учитывая PS, мы получаем, что первый вопрос ("для предупреждения инъекций") уже не имеет смысла. остается "алерт в админке". поверь мне - твои розовые фантазии о работе сайтов не имеют ничего общего с действительностью. Малолетние придурки бомбардируют сайты на предмет тупых уязвимостей постоянно. Один набор шаблонов поиска phpmyadmin состоит из сотни паттернов. Твой "алерт" на посещаемом сайте будет верещать постоянно. И без МАЛЕЙШЕГО смысла.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@Tumass
Веб-разработчик
Если Вы используете параметризованные запросы (prepared statements), то не стоит за это переживать.
Ответ написан
Нужно просто соответствующим образом экранировать данные. Или использовать prepared_statements, которые сами обо всем позаботятся.

> чтобы уже при попытке "ввода инъекции" уже ничего не запускать и не выполнять
А если вдруг пользователь захочет в блоке о вашем фреймворке опубликовать статью об инъекциях с примерами?
Ответ написан
@MGriboedoff Автор вопроса
Вообщем почитал, поглядел, данные нужно фильтровать поэтапно, частями именно там где используешь.
Например, нет смысла фильтровать запрос, если не правильно указан контроллер в URL - пустая трата времени.
А функции анализа данных должны быть под конкретный типа данных, многие функции уже есть в PHP (например проверка на валидность e-mailа и т.д).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы