SQLite - если я блокирую "из строк, могу ли я вводить SQL? - PullRequest
0 голосов
/ 24 января 2019

Я использую этот код (python использует sqlite3) для добавления данных в таблицу:

''' INSERT INTO TABLE (USERNAME) VALUES ("''' + data + '''")'''

Если я блокирую ", то (насколько мне известно) должно быть невозможно выйтистрока, которая впоследствии делает невозможным внедрение SQL.

У меня такие вопросы: не мешает ли это пользователям вводить SQL? Если нет, следует ли мне добавить дополнительные данные в черный список или создать белый список?

Вся помощь очень ценится.

1 Ответ

0 голосов
/ 24 января 2019

Если вы стерилизуете data перед тем, как позволить ему попасть в оператор вставки, убедившись, что одинарные кавычки нигде не появляются, то теоретически SQL-инъекция невозможна. Все, что вводится data, должно рассматриваться как строковый литерал, что делает любые введенные команды SQL неэффективными. Однако у злоумышленника все еще могут быть способы обойти это.

Лучше всего было бы просто полагаться на использование подготовленных операторов, чтобы избежать внедрения SQL. Злоумышленники становятся умнее, и все же может быть способ внедрить ваш текущий оператор вставки из других средств.

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