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



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

为了传递和使用用户名和密码,我将它们传递到所有这些视图中的hidden_field_tag,当我们单击提交按钮时,这些隐藏字段值将传递到第二个视图。

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

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

无论如何可以隐藏/加密URL中的这些参数吗?

谢谢。

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

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

你真的不应该将用户名和密码作为GET请求传递。我建议在 4 步流程中使用另一个表单按钮返回,以便整个过程由 POST 完成,无论您朝哪个方向行驶,这也将确保用户在转到上一页时不会丢失数据。

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

控制器:

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

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

最新更新