Сведения о вопросе

Faridun

16:03, 1st July, 2020

Теги

sql   xss   sql-injection    

Перехват SQL инъекций и других вредоносных веб-запросов

Просмотров: 450   Ответов: 8

Я ищу инструмент, который может обнаруживать вредоносные запросы (такие как очевидные SQL инъекций получает или сообщения) и сразу же запретит IP адрес запрашивающего/добавить в черный список. Я знаю, что в идеальном мире наш код должен уметь обрабатывать такие запросы и относиться к ним соответственно, но в таком инструменте есть большая ценность даже тогда, когда сайт защищен от подобных атак, поскольку он может привести к экономии пропускной способности, предотвращению раздутия аналитики и т. д.

В идеале я ищу кросс-платформенное решение (LAMP/.NET), которое находится на более высоком уровне, чем технологический стек; возможно, на уровне веб-сервера или аппаратного обеспечения. Хотя я не уверен, что это существует.

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



  Сведения об ответе

LIZA

18:03, 1st July, 2020

Вы почти смотрите на это неправильно, ни один инструмент 3party, который не знает о вашем приложении methods/naming/data/domain, не сможет полностью защитить вас.

Что-то вроде SQL Injection prevention-это то, что должно быть в коде, и лучше всего написано людьми, которые написали SQL, потому что они будут знать, что должно/не должно быть в этих полях (если только ваш проект не имеет очень хороших документов)

Ваше право, все это уже было сделано раньше. Вам не совсем нужно изобретать колесо, но вы должны вырезать новое из-за разницы в диаметрах осей каждого человека.

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

Эти 2 ссылки научили меня гораздо большему, чем основы по этому предмету, чтобы начать работу, и помогли мне лучше сформулировать мои будущие поиски по конкретным вопросам, на которые не было ответов.

И хотя это не совсем 100% finder, он будет "show you the light" на существующей проблеме в вашем существующем коде, но, как и в случае с webstandards, не прекращайте кодирование, как только вы пройдете этот тест.


  Сведения об ответе

ЯЯ__4

18:03, 1st July, 2020

Проблема с универсальным инструментом заключается в том, что очень трудно придумать набор правил, которые будут соответствовать только подлинной атаке.

SQL ключевые слова - это все английские слова, и не забывайте, что строка

 DROP TABLE users;

является абсолютно корректным в поле формы, которое, например, содержит ответ на вопрос программирования.

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


  Сведения об ответе

dumai

18:03, 1st July, 2020

Один из методов, который может работать в некоторых случаях, заключается в том, чтобы взять строку sql, которая будет выполняться, если вы наивно используете данные формы, и передать ее в некоторый код, который подсчитывает количество операторов, которые будут фактически выполнены. Если это больше, чем ожидаемое число, то есть приличная вероятность того, что инъекция была предпринята, особенно для полей, которые вряд ли будут содержать управляющие символы, такие как имя пользователя.

Что-то вроде обычного текстового поля было бы немного сложнее, так как этот метод будет намного более вероятен для возврата ложных срабатываний, но это будет, по крайней мере, началом.


  Сведения об ответе

lesha

18:03, 1st July, 2020

Одна маленькая вещь, которую нужно иметь в виду: в некоторых странах (т. е. в большинстве стран Европы) люди не имеют статических IP-адресов, поэтому черный список не должен быть вечным.


  Сведения об ответе

lourence

18:03, 1st July, 2020

Oracle получил онлайн-учебник о SQL инъекции . Даже если вы хотите получить готовое решение, это может дать вам некоторые подсказки о том, как лучше использовать его для защиты себя.


  Сведения об ответе

appple

18:03, 1st July, 2020

Теперь, когда я думаю об этом, Байесовский фильтр, подобный тем, которые используются для блокировки спама, тоже может работать прилично. Если вы соберете набор обычного текста для каждого поля и набор sql инъекций,вы сможете обучить его помечать инъекционные атаки.


  Сведения об ответе

SKY

18:03, 1st July, 2020

Один из моих сайтов был недавно взломан с помощью SQL инъекции. Он добавил ссылку на вирус для каждого текстового поля в БД! Исправление состояло в том, чтобы добавить некоторый код, ищущий ключевые слова SQL. К счастью, я разработал в ColdFiusion, поэтому код находится в моем файле Application.cfm, который запускается в начале каждой веб-страницы &, он смотрит на все переменные URL. В Википедии есть несколько хороших ссылок, которые тоже могут помочь.


  Сведения об ответе

screen

18:03, 1st July, 2020

Интересно, как это реализуется годами позже google и их удалением URL все вместе, чтобы предотвратить атаки XSS и другие вредоносные действия


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться