Как защитить sql insert от sql injection в python?

169
27 августа 2021, 18:40

Как защитить такой insert запрос от sql инъекций ? Я использую python 3.7 и БД mysql 5.7 с библиотекой pymysql. Вот код который надо защитить:

self.cursor.execute('''INSERT INTO items (res_id, log_id, link, title, content, n_date, nd_date, s_date, not_date)
                       VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)''',
                       ( res_id,
                         log_id,
                         str(resource_link),
                         str(item_title),
                         str(item_content),
                         str(n_date),
                         nd_date,
                         s_date,
                         not_date
                       )
                                    )
        print('Запись новостей успешно произведена!')

UPD: То что я экранировал VALUES защитит мой insert?

Answer 1

Да, экранирование VALUES защищает insert. На английском stackoverflow есть подробное объяснение, почему.

READ ALSO
Table 'mydb.mytable' doesn't exist in engine после перезапуска сервера

Table 'mydb.mytable' doesn't exist in engine после перезапуска сервера

Сегодня вечером мой сервер завис и перезапустился, после чего одна из табличек пострадала, и перестала работатьБекапа к сожалению нет

176
Как получить количество товаров для категории которая имеет подкатегории?

Как получить количество товаров для категории которая имеет подкатегории?

Есть таблица категорий: id, title, parent_id; Таблица товаров: id, name, category_id;

257