Azure блок брандмауэра Системный запрос, SQL Атака с помощью инъекции: SQL Обнаружен оператор - PullRequest
0 голосов
/ 12 марта 2020

Некоторые системные запросы блокируются брандмауэром Azure, если Проверить тело запроса в состоянии ON (рекомендуется для обеспечения безопасности системы).

Обзор: У меня есть запрос к системе, я передаю строковый параметр в контроллер, но во время отправки брандмауэр обнаружил SQL оператор, похожий на символы «<> ..» в строковом параметре. Это вызвало блокировку запроса и запрещенную ошибку ответа 403.

Я думал о решениях ниже, я поделился этим на этой платформе, просто надеясь, что у кого-то есть лучшая идея и решение.

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

  2. преобразовать строковое значение в двоичный код, он сгенерирует значения 1 и 0, то же самое с небезопасными решениями.

  3. ограничивает пользователя вводом специальных символов в поле. это ограничит пользователя.

Если у кого-то есть идея получше, она будет очень полезна. спасибо.

1 Ответ

0 голосов
/ 19 марта 2020

Я внимательно посмотрел на вопрос и комментарии выше. Чтобы предотвратить внедрение программы с помощью SQL, дизайн программы обычно не позволяет передавать связанные с SQL строки по запросу http. .

Я нашел фрагмент кода, может быть, вы можете использовать его для фильтрации строк по js коду, затем вы отправляете запрос http.

function AntiSqlValid(oField ){re= /select|update|delete|exec|count|'|"|=|;|>|<|%/i;if( re.test(oField.value) ){//alert("pls don't input sql strings"); oField.value = ";oField.className="errInfo";oField.focus();return false;}

В Azure firewall , вы можете установите политику для фильтрации строк. Таким образом, вы получите приведенное выше приглашение. Если вам действительно нужна передача специальных символов, вы можете добавить пользовательское правило в alow traffi c. пример пи c

Надеюсь, мой ответ поможет вам.

...