Это теоретически возможно, но маловероятно. По сути, вы просите статический анализ использовать некоторые вспомогательные данные для проверки какой-либо заявки. Как правило, это возможно, но статический анализ в целом страдает степенью неточности. Например, если у меня есть блок кода:
If(getResultFromDB() == someResult) {
do this;
} else {
do that;
}
Вы, по сути, хотели бы, чтобы анализ жаловался на вас, если вы пишете код в первом блоке if, потому что база данных никогда не сможет вернуть someResult. Это возможно в теоретическом смысле, я имею в виду, что нужно просто изучить все возможные возвращаемые значения для функции getResultFromDB () для данной базы данных, а затем сделать вывод об ответе.
Проблема в том, что это число может быть очень большим. И это вообще проблема статического анализа, чтобы получить точные результаты, нам нужно учесть ВСЕ возможные пути выполнения, входные данные, контексты и т. Д. На практике это просто невозможно, поэтому статический анализ обычно идет на уступки там, где он уменьшается размер его текущего набора возможностей.
Редактировать: Если вам интересен расширенный статический анализ в целом, вот интересный анализ, о котором я читал на днях. Он пытается найти возможные XSS-атаки в исходном коде PHP. Чтобы найти XSS-атаки с использованием баз данных, он фактически моделирует эффекты запросов к базе данных в некой абстрактной базе данных. http://www.cs.washington.edu/homes/mernst/pubs/create-attacks-tr054.pdf