Написание инструментов статического анализа кода - PullRequest
2 голосов
/ 23 июля 2011

Я хотел бы написать инструмент статического анализа кода для поиска уязвимостей SQLi в коде PHP.Обычно я просто использую сценарий для разделения функций и использую их для неадекватной очистки.Очевидно, что этот подход ограничен.

Схема программы, которую я хочу написать:

  1. Найти все вызовы mysql_query
  2. Найти все ссылки на функции, которыеcall mysql_query
  3. Отслеживайте все переменные, которые входят в каждый запрос запроса, и выясняйте, запускается ли на них mysql_real_escape_string.

Я попал между двумя подходами к написанию этого.Либо я выберу расширение PHP, либо напишу его как отдельный с нуля.

Преимущества использования расширения PHP состоят в том, что мне не придется создавать свой собственный токенизатор, парсер и т. Д. (Я полагаю, основываяэто о возможностях расширения XDebug).

Есть ли у кого-нибудь опыт написания расширений PHP каких-либо советов о том, как решить проблему?

1 Ответ

2 голосов
/ 23 июля 2011

Предлагаю взглянуть на проект RIPS Scanner и просмотреть его исходный код на предмет идей.Он выполняет именно те функции, которые вы хотите сделать.

...