防止 SQL 注入/良好的 Ruby 方法
Ruby 中防止 SQL 注入的好方法是什么?
What is a good method in Ruby to prevent SQL Injection?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
Ruby 中防止 SQL 注入的好方法是什么?
What is a good method in Ruby to prevent SQL Injection?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
直接红宝石?使用准备好的语句:
in straight up ruby? use prepared statements:
不仅仅是在 Ruby 中 - 绑定您的参数(无论是在数据库中,还是在客户端代码中)。
Not just in Ruby - bind your parameters (be it in the database, or in your client code).
查看他们对此的指南:http://guides.rubyonrails.org/security。 html#injection
基本上,您希望在模型中使用绑定变量来查找数据,而不是内联参数。
Check out the guide they have up on this: http://guides.rubyonrails.org/security.html#injection
Basically, you want to use bind variables in your models to find data, rather than inline parameters..
根据 http://ruby.railstutorial.org/ 你可以防止 插入标签来伪造跨站请求
通过在 app/views/layouts/application.html.erb 的标头中
。 示例的直接链接
According to http://ruby.railstutorial.org/ you can prevent Cross Site Request Forgery by inserting the
tag in the header of app/views/layouts/application.html.erb.
Direct link of example
该线程引用:
http://www.ruby-forum.com/topic/90258#新
http://www.ruby-forum.com/topic/82349 #143790
ActiveRecord 的 find() 方法内置了避免 SQL 注入的方法
使用格式
是否有这样的系统可以按顺序转义注入?看来
只获取一个字符串并将其提供给 SQL 语句。这会导致
使用 params 设置 : order 时的漏洞,如下函数所示:
我们尝试了一些方法来清理 sort_by,例如 order =>; [‘?’,
sort_by] 但它只是将其传递给 SQL 语句,就像扁平化的一样
大批。 “逃脱魔法”对秩序不起作用。我应该使用
gsub!清理 params[:sort_by]?
This thread references:
http://www.ruby-forum.com/topic/90258#new
http://www.ruby-forum.com/topic/82349#143790
ActiveRecord's find() method has built in ways to avoid SQL injection by
using the format
Is there any such system for escaping injection in order? It seems to
only take a string and feed it to the SQL statement. This causes a
vulnerability when using params to set : order as in this function:
We've tried a few methods to sanitize sort_by such as order => ['?',
sort_by] but it just passes that to the SQL statement like a flattened
array. The 'escaping magic' does not work for order. Should I use
gsub! to sanitize params[:sort_by]?