将数据从视图安全地传递到轨道中的控制器

时间:2015-01-13 23:17:34

标签: ruby-on-rails security url hyperlink link-to

我想将数据从视图(链接)传递到控制器,以便它可以查找相关信息。在这种情况下,公司的服务。

我看到人们添加了这样的参数的例子:

<div>
    <%= link_to 'Services', :controller => 'company', :action => 'services', :company_id => @company.id %>
</div>

...但这会导致像这样的透明(不安全)网址:

http://localhost:5000/company/services?company_id=17

有没有办法解决这个问题而不将数据填入会话?什么是需要身份验证的应用内链接的最佳做法?

2 个答案:

答案 0 :(得分:0)

<%= link_to "Sign in", new_session_path(:id => Base64.encode64("1")) %>

并在您的控制器中

def new
  id=Base64.decode64(params[:id].to_s)
end

这是另一种用于创建数据链接的表单

使用命令un console rake routes检查路由

有关更多信息,请阅读本文档

http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to

答案 1 :(得分:0)

在View中传递这样的数据不会有这么大的危害。

如果你坚持要求,那么请检查一下:

http://railscasts.com/episodes/314-pretty-urls-with-friendlyid

在此之前,我们必须在控制器中进行有效检查。模型文件。

 1. Valid Checks and redirection in Controller is helpful.
 2. Depending on need adding validations in model can be a good support.