【问题标题】:Rails' form_tag helper doesn't submit using HTTPS?Rails 的 form_tag 助手不使用 HTTPS 提交?
【发布时间】:2009-09-07 11:24:51
【问题描述】:

我想使用 HTTPS 保护我的 Rails 应用程序的登录表单。经过一番艰苦的努力,我现在已经安装了 SSL 证书并正确设置了 Apache/Passenger。

我的应用程序将SSL RequirementRESTful Authentication 组合用于登录表单。我注意到使用 Firebug 时,登录凭据仍然是明文发送的。如何让 Rails form_tag 助手通过 HTTPS 提交表单?我在文档中看不到任何关于此的内容。


编辑:我做了更多研究并编辑了我的路由文件,以便会话控制器使用 HTTPS:

map.resource :session, :controller => 'session',
                       :only => [:new, :create, :destroy],
                       :requirements => { :protocol => 'https' }

我还将登录表单更改为使用session_url 而不是session_path

<% form_tag session_url do %>
  .
  .
  .
<% end %>

——这正确地使用了完整的 https:// URL 作为生成的 action 元素的 form 元素,但我仍然可以使用 Firebug 嗅探用户名和密码。怎么回事?!

谢谢。

【问题讨论】:

    标签: ruby-on-rails ssl https


    【解决方案1】:
    <%= form_for  user, {:url => https_path} do %>
    ...
    <% end %>
    

    【讨论】:

    • In 为我指明了正确的方向,即我必须确保表单提交到 https 路径。我在我的问题编辑中详细实现了它。谢谢。
    【解决方案2】:

    由于 Firebug 是 Firefox 内部的一个扩展,它可能会在加密之前看到请求数据。如果你想正确地测试这个,你应该使用 Firefox 之外的工具。

    【讨论】:

    • 你的说法是正确的。我在其他一些具有安全表单的站点上对其进行了测试,并且字段内容在 Firebug 中显示为纯文本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 2021-07-06
    • 1970-01-01
    • 2013-02-11
    相关资源
    最近更新 更多