Как обезопасить PSQL LIKE-запрос от инъекционных атак - SQALCHEMY PYTHON - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь санировать SQL-запрос, используя python, когда я передаю ему некоторые переменные, взятые из формы. У меня есть ниже:

listOfBooks = db.execute("SELECT * from books WHERE " + searchParameter + " LIKE" + "'%"+ ":searchString" +"%'", {"searchString": searchString} ).fetchall()

но, очевидно, это дает мне ошибку, потому что интерпретирует это как

SELECT * from books WHERE isbn LIKE'%'2017'%',

поэтому проблема в том, что в 2017 году есть дополнительные одинарные кавычки, которых не должно быть.

Как это решить?

Ура! * * 1013

1 Ответ

0 голосов
/ 29 апреля 2019

Я не уверен, какой язык вы используете, я предполагаю, что это Java, в этом случае вы должны заменить одинарную кавычку на двойную одинарную квоту, как это

searchString.replace("'", "''")
...