Большинство SQL инъекций не дают ничего полезного для злоумышленника, только синтаксическая ошибка.
Например, передайте строку «Я не удовлетворен» этой функции обратной связи и дополнительным Символ ' приведет к несбалансированности кавычек, что приведет к ошибке, в результате чего INSERT завершится ошибкой.
sqlite3.OperationalError: рядом с «m»: синтаксическая ошибка
Технически это SQL инъекция. Содержимое, интерполированное в запрос, повлияло на синтаксис оператора SQL. Вот и все. Это не обязательно приведет к успешному проникновению типа «Миссия: невыполнима».
I can't think of a way to exploit the INSERT statement you show to make it do something clever, besides causing an error.
You can't change an INSERT into a SELECT that produces a result set. Even if you try to inject a semicolon followed by a second SQL query, you just get sqlite3.Предупреждение: вы можете выполнять только одну инструкцию за раз
Ваша первая попытка, описанная выше, привела к синтаксической ошибке, потому что в качестве источника данных для вставки использовались и предложение VALUES, и SELECT. Вы можете использовать любой из них, но не оба в синтаксисе SQL. См. https://www.sqlite.org/lang_insert.html
Вероятно, вы уже знаете, как сделать код безопасным, поэтому небезопасный контент не может даже вызвать синтаксическую ошибку. Но я добавлю его для других читателей:
curs.execute("INSERT INTO feedback VALUES (?)", (feedback,))