2009-11-30 3 views
9

Есть ли способ подтвердить, что определенное нарушение безопасности было выполнено с помощью SQL-инъекции?Как подтвердить SQL-инъекцию

+0

Вы уверены, что это произошло, или просто подозрительное? – kurast

+0

На самом деле детали, которые находятся только в базе данных, являются ... поэтому первое, что мне показалось, это то, что dbase, возможно, был взломан. – Sachindra

+0

Вы пробовали, что я предложил? – kurast

ответ

1

после атаки уже произошло? нет. нет. , вы должны будете проверить всю свою точку доступа sql serevr для потенциального риска. Вот некоторые инструменты, которые вы можете использовать. Проверьте раздел here в разделе инструментов SQL Injection.

0

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


Лучше их предотвратить.

Для этого есть tools, но лучший из них - мозг разработчика.

Stick с одним простым правилом - всегда использует параметры при генерации SQL-запроса.
Просто просмотрите код, и если вы найдете string cocatenations - это первое и очень возможное место для SQL Injection.

+0

запрос использует прошедшее время, я подозреваю, что это уже произошло. – lorenzog

+0

Да. Ты прав. Я немного обновил ответ. –

-2

Вы можете регистрировать все HTTP-запросы и проверять запрашиваемые страницы для проб GET/POST sql injection.

7

Здесь нет простого способа, но если у вас есть включен SQL-сервер, который вы используете для регистрации каждого отдельного оператора sql, вот что я буду делать.

Как правило, когда я SQL-инъекция где-то, я использую один из них в качестве моего всегда истинного оператора для передачи аргумента Where после окончания предыдущей строки.

1=1 
0=0 

и используется как:

blahblahblah' or 1=1 -- 

Вы бы не использовать эти положения в повседневном коде. Поэтому, если вы заметите одно из этих событий в своей истории, это высокий кандидат. Проверьте историю Sql найти:

(space)(number)(optional spaces)(equal)(optional spaces)(same number)(space) 

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

1

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

В настоящее время для IDS существуют альтернативы с открытым исходным кодом. Я использую PHPIDS для всех моих приложений PHP.

1

SQL-инъекция может произойти при каждом обращении запроса к базе данных.

SQL Injection