Ruby on rails密码在url中作为参数可见

时间:2012-07-06 16:01:38

标签: ruby-on-rails

我有一个初始登录屏幕,我们可以输入“用户名”和“密码”。 我有四个视图,我使用在第一个登录视图中输入的“用户名”和“密码”在第四个视图中建立SSH连接。

要传递和使用用户名和密码,我将在所有这些视图中传递hidden_field_tag,当我们点击提交按钮时,这些隐藏的字段值将传递给第二个视图。 / p>

所有这些提交都是get次请求。

用户名和密码出现在URL中,因为我将它们作为参数传递。 如果我使用post请求而不是get,那么当我点击浏览器中的后退按钮时,页面就会过期。

有没有在URL中隐藏/加密这些参数?

感谢。

4 个答案:

答案 0 :(得分:1)

我认为你不能隐藏它们,因为我们知道GET会暴露这些参数。我想知道你是否可以将它们存储在会话中?我不知道你在做什么,但逻辑看起来有点不透明。也许你可以将逻辑重新思考成更常见的模式。祝你好运!

答案 1 :(得分:0)

你真的不应该将用户名和密码作为GET请求传递。我建议改为使用另一个表单按钮返回4个步骤,这样整个过程就可以通过POST完成,无论你走向哪个方向,这也可以确保用户在前往上一页时不会丢失数据。

<%= form.submit 'Previous Step' %>
<%= form.submit 'Next Step' %>

控制器:

if params[:commit] == "Next Step" 
  object.update_attributes(params[:item])
  <..logic..>
end

答案 2 :(得分:0)

您真的不应该将用户名和密码作为get请求传递。如果您不希望该页面作为帖子过期,我想您可以做些什么来通过AJAX帖子请求发送用户名和密码,其余的用get请求。

答案 3 :(得分:0)

点击后退按钮时页面到期有什么问题?对我来说似乎很好。您经常无法登录某些内容然后点击后退按钮返回页面 - 例如google。 使用帖子。