Как подтвердить SQL-инъекцию - PullRequest
9 голосов
/ 30 ноября 2009

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

Ответы [ 6 ]

7 голосов
/ 30 ноября 2009

Здесь нет простого способа , но если у вас включен сервер 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 голос
/ 06 июля 2011

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

SQL-инъекция

1 голос
/ 03 декабря 2009

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

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

1 голос
/ 30 ноября 2009

после того, как атака уже произошла? нет. нет вам придется проверить все ваши точки доступа sql serevr на потенциальный риск. Вот некоторые инструменты, которые вы можете использовать. Отметьте здесь в разделе инструментов SQL-инъекций.

0 голосов
/ 30 ноября 2009

Вы можете регистрировать все http-запросы и проверять запрошенные страницы для GET / POST SQL инъекций.

0 голосов
/ 30 ноября 2009

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


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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...