rails: защищает ли метод сборки от SQL-инъекций

Вы можете найти список утилит распространения, перечисленных @ https://wiki.python.org/moin/DistributionUtilities .

Я использую bbfreeze , и он работает очень хорошо (но пока поддержка python 3).

1
задан djburdick 7 July 2010 в 07:26
поделиться

1 ответ

build сам по себе ничего не записывает в базу данных, поэтому SQL-инъекция не применяется. Когда вы вызываете save, не имеет значения, был ли объект создан через build или через другой механизм, такой как передача атрибутов в new или использование отдельных методов attribute=, тот же самый код будет использован для сохранения вашего объекта в базе данных.

Из документации по build:

Возвращает новый объект типа collection который был инстанцирован с атрибутами и связан с этим объектом через таблицу присоединения, но еще не еще не был сохранен.

Метод save устраняет любые кавычки и т.д. в значениях атрибутов, используя метод, соответствующий используемой базе данных (например, MySQL), так что результирующий запрос insert или create не будет подвержен SQL-инъекции. То же самое относится к update_attributes и к любым параметризованным :conditions, которые вы передаете в find. В случае, когда вам нужно быть осторожным и может потребоваться ручное экранирование, это если вы передаете буквальные строки в соединение с базой данных в качестве запросов.

2
ответ дан 2 September 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: