Rails的form_tag助手不使用HTTPS提交?

时间:2009-09-07 11:24:52

标签: ruby-on-rails ssl https

我想使用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来嗅探用户名和密码。发生什么事了?!

感谢。

2 个答案:

答案 0 :(得分:3)

<%= form_for  user, {:url => https_path} do %>
...
<% end %>

答案 1 :(得分:2)

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