目前,我的代码如下所示:
pthread_detach
但是这样的查询允许SQL注入,应该避免使用。
Rubyonrails.org告诉我们,如何避免此类攻击(http://guides.rubyonrails.org/security.html#sql-injection)
例如,使用问号:
@events = Event.tagged_with(params[:search_input])
但是,我不知道,如何清理这个gem的用户输入。我尝试了以下方法:
Model.where("login = ? AND password = ?", entered_user_name, entered_password).first
但这会导致以下错误:
@events = Event.tagged_with("?", "%#{params[:search_input]}%")
任何想法,如何消毒此输入?提前谢谢!
答案 0 :(得分:2)
在这种情况下,acts_as_taggable_on
gem正在为您处理清理。您需要做的就是将params
值传递给gem。试试这个:
@events = Event.tagged_with(params[:search_input])
通常,您将使用直接与ActiveRecord交互时尝试的方法。在这种情况下,acts_as_taggable_on
使用查询参数机制在内部为您完成所有这些操作。 gem的界面不允许你也使用参数化,这是造成错误的原因。