Ловля SQL Injection и другие вредоносные веб-запросы

голоса
17

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

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

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

Задан 04/08/2008 в 15:40
источник пользователем
На других языках...                            


8 ответов

голоса
5

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

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

 DROP TABLE users;

Совершенно справедливо в поле формы, что, например, содержит ответ на вопрос программирования.

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

Ответил 04/08/2008 в 16:11
источник пользователем

голоса
3

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

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

Ответил 04/08/2008 в 16:20
источник пользователем

голоса
3

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

Ответил 04/08/2008 в 16:22
источник пользователем

голоса
0

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

Ответил 04/08/2008 в 16:26
источник пользователем

голоса
10

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

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

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

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

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

И хотя это один разве довольно 100% видоискатель, он «покажет вам свет» на существующие проблемы в существующем коде, но, как и с webstandards, не останавливайтесь кодирования, как только вы пройти этот тест.

Ответил 04/08/2008 в 16:43
источник пользователем

голоса
3

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

Ответил 05/08/2008 в 18:38
источник пользователем

голоса
0

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

Ответил 16/09/2008 в 15:04
источник пользователем

голоса
0

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

Ответил 24/07/2014 в 06:18
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more