В настоящее время я проверяю чей-то код и наткнулся на следующую строку Python:
db.query('''SELECT foo FROM bar WHERE id = %r''' % id)
Это противоречит моему здравому смыслу, потому что я обычно соглашаюсь использовать подготовленные операторы илипо крайней мере, используйте функцию экранирования собственной строки системы баз данных.
Однако мне все еще интересно, как это можно использовать, учитывая, что:
- Значение 'id' является строкойили номер, предоставленный конечным пользователем / пентестером
- Это MySQL
- Соединение явно настроено на использование UTF8.