pup*_*eno 12 ruby sql-injection escaping ruby-on-rails
在Ruby on Rails中,对于条件,很容易进行SQL注入证明查询:
:conditions => ["title = ?", title]
Run Code Online (Sandbox Code Playgroud)
标题来自外部,来自网络表单或类似的东西.
但是,如果您在查询的其他部分使用SQL片段,例如:
:select => "\"#{title}\" AS title" # I do have something like this in one instance
:joins => ["LEFT JOIN blah AS blah2 ON blah2.title = \"#{title}\""]
Run Code Online (Sandbox Code Playgroud)
有没有办法正确逃脱这些字符串?
And*_*Vit 23
通常在Rails中,连接作为表示id连接的符号(或作为二阶连接的哈希)完成,并使用条件对其进行过滤.如果您需要如图所示,那么您可以使用ActiveRecord sanitize_sql_array来清理SQL字符串,如下所示:
sanitize_sql_array(["LEFT JOIN blah AS blah2 ON blah2.title = ?", @blah.title])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7549 次 |
| 最近记录: |