RAILS: безопасная параметризация пользовательского ввода в Arel - PullRequest
1 голос
/ 20 июня 2011

Так что, прежде чем кто-то из меня выйдет, я знаю, как это сделать при вызове методов Ареля. Что меня интересует, так это то, есть ли способ просто получить эту безопасную для пользователя версию для ввода данных, поэтому я держу ее в руках и могу делать с ней все, что хочу.

В идеале я бы заинтересовался чем-то вроде:

safe_input_data = Person.sql_safe params[:user_data_for_arel_manipulation]

Я провел некоторое время прошлой ночью в поисках чего-то, что могло бы сделать это, но ничего не нашло. Я прочитал все методы ActiveRecord, но есть путь к документации. Проще говоря по именам методов и источникам этих методов, я ничего не видел. Я надеюсь, что кто-то что-то знает.

1 Ответ

4 голосов
/ 20 июня 2011

Это даст вам безопасную строку sql:

safe_input_data = Person.sanitize(params[:user_data_for_arel_manipulation])

Имейте в виду, он также добавляет одинарные кавычки к вашей строке!

То есть "my unsafe input" становится "'my unsafe input'".

...