首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止用户在Rails 3中设置表单提交的敏感字段?

如何防止用户在Rails 3中设置表单提交的敏感字段?
EN

Stack Overflow用户
提问于 2014-04-03 10:24:52
回答 1查看 59关注 0票数 0

我以Rails教程中关于“跟随用户”的例子为例。

代码语言:javascript
复制
<%= form_for(current_user.relationships.build(followed_id: @user.id)) do |f| %>
  <div><%= f.hidden_field :followed_id %></div>
  <%= f.submit "Follow", class: "btn btn-large btn-primary" %>
<% end %>

这一行:f.hidden_field :followed_id

在浏览器中生成如下内容:

<input type="hidden" value="13">

'13‘表示将要被跟踪的用户的ID

也许不是所有的网站用户都精通技术,但有些用户可能会找到一种方法来做一些技巧,例如打开Firebug,只需编辑html输入标签,并使用随机数设置值。

在我的控制器中,让一个用户通过以下方式跟踪另一个用户显然是快速和简单的:

代码语言:javascript
复制
def create
  @user = User.find(params[:relationship][:followed_id])
  current_user.follow!(@user)        
end

此外,我需要我的模型中的属性可以访问:

attr_accessible :followed_id

然而,让用户轻松地操作这类数据不是太危险了吗?是否有其他解决方案而不像上面的代码那样做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-03 10:37:07

你的解决方案很好。如果有用户可以恶意篡改数据的情况,则需要进行某种类型的服务器端检查。例如,如果用户可能只跟踪某些其他用户,那么您需要检查他们没有篡改该变量,以跟踪他们不允许的用户。这取决于情况。

根据经验,来自用户的数据不应该被认为是可信的。总是假设它可能会被篡改。但是,如果他们不能以一种恶意的方式篡改它(例如,如果用户可能跟踪任何其他用户),那么就不用担心了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22834742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档