Ruby On Rails, параметры SQL и SQL - PullRequest
       18

Ruby On Rails, параметры SQL и SQL

1 голос
/ 12 апреля 2011

У меня сложный запрос SQL. Мне нужно безопасно передавать параметры в SQL-запрос. Как я могу избежать инъекций sql без использования activerecord? Где я должен хранить модели / контроллеры SQL? Кто-нибудь знает хорошую практику работы с SQL-сервером без activerecord?

Ответы [ 2 ]

0 голосов
/ 12 апреля 2011

Когда вы обходите ActiveRecord, вам почти все приходится делать вручную. Я полагаю, у вас есть веские причины для этого.

ActiveRecord :: Base имеет следующие методы: sanitize_sql_for_assignments (для набора) и sanitize_sql_for_conditions (для выбора). Есть несколько других sanitize_sql_ *, на которые, вероятно, стоит обратить внимание. Оба принимают хеш (использует ключи как имена столбцов) или строку.

Я могу ошибаться, но для получения записей и пропуска ActiveRecord, я думаю, вы используете ActiveRecord :: Base.connection.execute (sql), который должен возвращать объекты из коннектора вашей базы данных. Проверяет документы на разъем, чтобы увидеть, что возвращается и как с ним работать.

Что касается лучших практик, извините, я не могу вам помочь: -)

0 голосов
/ 12 апреля 2011

ActiveRecord имеет sanitize_sql функции для этого. Вы можете проверить исходный код этих методов.

...