Как избежать SQL внедрения по запросу - PullRequest
0 голосов
/ 27 марта 2020

Моя SQL конструкция запроса в python коде:

query = '''
SELECT {return_col} 
FROM {table_name}   
'''.format(colA, tableA)

Когда я запускаю инструмент безопасности Bandit, он говорит: «Возможно SQL вектор инъекции через построение запроса на основе строки».

Как мне избежать этого?

1 Ответ

0 голосов
/ 27 марта 2020

В рекомендациях рекомендуется избегать динамического построения запроса и вместо этого использовать параметризованный запрос. Но цель состоит именно в том, чтобы избежать того, что вы здесь делаете: запретить поддельный параметр для разрешения произвольного запроса.

Если вы знаете, почему вы разрешаете запрашивать любое поле в любой таблице, и если учетная запись выполняет запрос имеет только привилегию SELECT для базы данных, тогда вы можете игнорировать предупреждение: оно просто говорит о том, что вы можете разрешить запросы для любой таблицы ... что вы хотите сделать!

Но, пожалуйста, изучите последствия для безопасности. В некоторых случаях это может быть совершенно нормально, в других - ужасно.

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