我正在使用ActiveRecord和Sinatra(可能不相關的上下文)。 ActiveRecord有一個動態查找方法find_by_[column]
find_by_ [dynamic] Activerecord方法對於未分類輸入是否安全?
我想從HTTP直接傳遞一個原始參數字符串到這些方法之一。我很確定 ActiveRecord會清理我傳入的字符串。對吧?下面是一些示例代碼來說明我想做的事:
post '/login' do
user = User.find_by_username(params[:username])
...
end
它是有問題的傳遞unsanitized HTTP參數到這種方法的ActiveRecord的?
更普遍的是,應該如何確定哪些ActiveRecord方法可以淨化其輸入?我一直在閱讀這個網站,並感到害怕!
if User.exists? :username => params[:username]
user = User.find_by_username(params[:username])
end
這大大降低SQLI的機會:http://rails-sqli.org/