Перейти к содержанию

JP1229S

SQL инъекция

Static Badge

Static Badge Static Badge


Особенности: для улучшения результата работы данного теста, используется вторичный фильтр результатов

Проверяется использование строк, содержащих типичные запросы SQL, и которые могут содержать неэкранированные параметры. Инъекции возможны в общем случае, если разработчик использует такие «сырые» запросы без надлежащего контроля со стороны приложения, или без использования библиотечных функций, которые как правило реализуют такой контроль (если иное не предусмотрено такими функциями см. JP1233C, JP1235C).

Пример небезопасного использования

1
2
3
4
5
6
7
8
# confidence LOW (not wrapped in 'execute' call)
sql = "UPDATE dbtable SET {values} WHERE {in_clause}".format(
    values=values,
    in_clause=in_clause,
)

# confidence MEDIUM (wrapped in 'execute' call)
cursor.execute('SELECT * FROM TEST WHERE ID = "%s"' % (id_1_param,))

Дополнительная информация