Как исключить параметры в закладке Shiny?

Остерегайтесь использования строковой интерполяции для SQL-запросов, поскольку она не будет корректно устранять входные параметры и оставит ваше приложение открытым для уязвимостей SQL-инъекций.

Неправильно (с проблемами безопасности)

c.execute("SELECT * FROM foo WHERE bar = %s AND baz = %s" % (param1, param2))

Правильно (с ускорением)

c.execute("SELECT * FROM foo WHERE bar = %s AND baz = %s", (param1, param2))

Это добавляет к путанице, что модификаторы, используемые для привязки параметров в выражении SQL, различаются между различными реализациями API БД и что клиентская библиотека mysql использует синтаксис стиля printf вместо более общепринятого '?' (используется, например, python-sqlite).

1
задан pachamaltese 15 January 2019 в 14:49
поделиться