rails3,params [:id]加密

Edg*_*vra 1 encryption url ruby-on-rails-3

我试图阻止url黑客攻击,我将一个id传递给表单需要的url,它工作正常但是如果用户在url上更改了该值,它会将值发送到错误的表.

<%= link_to'+ New Event',{:controller =>'events',:action =>'new',:company_id => company.id}%>

在PHP世界我曾经加密那个id ...我怎么能在rails3上做这个或者有更好的方法吗?

不用说我对rails很新,我知道一点点php任何帮助或建议将不胜感激.

Dav*_*zer 5

虽然这是一个较老的问题,但这是一个非常有价值的问题.在URL中隐藏ID是绝对值得的,其中包括防止信息泄露.

例如,应用程序具有强大的安全模型,允许用户仅查看他们拥有权限的资源.但是,为什么用户应该能够查看URL中ID的值,并使用它来推断出有多少资源,或者正如原始提问者建议的那样,开始尝试使用强制浏览.

在rails中解决这个问题的解决方案非常简单.我发现效果最好的是覆盖模型中的to_param,通常是通过lib目录中的模块和应用程序控制器中解密ID的before_filter.

有关演练,请查看此内容:http: //www.youtube.com/watch?v = UW_s9ejrCsI