Показать сообщение отдельно
Старый 20.09.2016, 15:34   #1
Tr3v0r
 
Регистрация: 20.09.2016
Сообщений: 2
Репутация: 0
По умолчанию Защита от SQL-инъекций в postgresql

Всем привет! Есть следующий код на питоне/постгресе:

return do_sql_query(""" SELECT user, pass FROM users WHERE user = '{0}', pass = '{1}' """.format(username.replace("'", "''"), password.replace("'", "''"))

Параметры username и password контролирует удаленный пользователь.

Подскажите, пожалуйста, достаточно ли такого реплэйса для предотвращения инъекции?

Где-то видел статью, описывающую эксплуатацию такой (подобной) ситуации, но сейчас не могу найти ее. Там в качестве пайлоада передавали также обратную косую для экранирования первой кавычки, однако мне не удается повторить это. Запрос не ломается если в него попадают две одинарные кавычки, они расцениваются как символ строки.
Tr3v0r вне форума   Ответить с цитированием