SQL Injection - глобальный фильтр на веб-сервере - PullRequest
1 голос
/ 19 июня 2020

Можно ли фильтровать веб-запросы, содержащие SQL значения инъекций?

1 Ответ

1 голос
/ 20 июня 2020

Существуют брандмауэры веб-приложений или брандмауэры баз данных, которые пытаются это сделать.

Вы должны определить либо шаблоны для приема ввода, либо список разрешенных буквальных вводов.

Некоторые из этих продуктов работают, позволяя вам «обучать» их, запуская ваше приложение во время время, когда вы знаете, что атак с использованием SQL инъекций не происходит, и записывает SQL запросов, которые считаются законными. Затем вы выключаете режим обучения, и впоследствии брандмауэр блокирует все, что не соответствует разрешенному списку входных данных.

Проблемы с этим решением:

  • Если вам нужно изменить веб-приложение, вам необходимо повторно обучить брандмауэр, прежде чем вы сможете развернуть свое приложение.

  • Это ограничивает вас запуском SQL запросов, которым может соответствовать такой список. Если у вас есть SQL, который сильно варьируется (например, запросы Dynami c, которые выполняют дополнительные соединения или дополнительные условия в предложении WHERE условно), трудно создать правила для того, что разрешить.

  • Решения на основе брандмауэра не могут блокировать SQL внедрение, которое происходит в хранимых процедурах.
  • Это дает вам ложное ощущение безопасности, соблазняя вас небрежно писать безопасный код.

В конечном итоге вам лучше защитить себя от SQL внедрения кода с помощью параметров запроса.

Это ответ практически на все вопросы о SQL инъекции при переполнении стека!


См. Также некоторые из моих прошлых ответов о брандмауэрах веб-приложений или брандмауэры баз данных:

...