在link_to中传递参数而没有漏洞

时间:2013-12-28 08:45:22

标签: ruby-on-rails

我很确定这是一个非常棒的问题,但我仍然在摸不着头脑。

在招聘应用中,我有 has_many 工作的用户:通过应用程序。

在每个Jobs#show视图中,我想要一个用户可以单击以转到Applications#new的按钮,并在该特定作业和用户之间创建连接。

现在,我正在使用此代码 - >

<%= link_to "Apply to the Job", 
    new_application_path(:application => { :user_id => current_user.id, :job_id => @job.id }), 
    , :method => POST, :class => "button"
%>

但是,如果不引入质量分配安全漏洞,这是行不通的;用户可以简单地更改其用户ID,并使其看起来好像其他人已应用于该作业。

如何在传递job_id以及链接中的user_id参数的同时避免批量分配?

1 个答案:

答案 0 :(得分:0)

由于user_id是current_user id,因此您可以修改路径以获取:job_id,并在控制器操作中,使用current_user id:user_id。然后传递job_id应该不是问题。

<%= link_to "Apply to the Job", 
    new_application_path(:application => {:job_id => @job.id }), 
    , :method => POST, :class => "button"
%>