铁轨' form_tag 帮助程序不使用 HTTPS 提交?

发布于 2024-08-03 23:54:10 字数 1022 浏览 1 评论 0原文

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

我的应用程序使用 SSL 要求RESTful 身份验证 组合用于登录表单。我注意到使用 Firebug 时登录凭据仍然以明文形式发送。如何让 Rails form_tag 帮助程序通过 HTTPS 提交表单?我在文档中看不到任何关于此的内容。


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

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

我还更改了登录表单以使用 session_url 而不是 session_path< /code>:

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

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

谢谢。

I want to protect the login form of my Rails application using HTTPS. After a bit of a uphill struggle I now have the SSL certificate installed and Apache/Passenger set up correctly.

My application uses SSL Requirement and RESTful Authentication in combination for the login form. I've noticed using Firebug that the login credentials are still sent in the clear. How can I make the Rails form_tag helper submit the form over HTTPS? I couldn't see anything about this in the docs.


EDIT: I did some more research and edited my routes file so that the session controller uses HTTPS:

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

I also changed the login form to use session_url instead of session_path:

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

—This is correctly using a full https:// URL as the action for the generated form element, but I can still sniff the user name and password using Firebug. What's going on?!

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不交电费瞎发啥光 2024-08-10 23:54:10
<%= form_for  user, {:url => https_path} do %>
...
<% end %>
<%= form_for  user, {:url => https_path} do %>
...
<% end %>
难得心□动 2024-08-10 23:54:10

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

Since Firebug is an extension inside Firefox it probably sees the request data before it gets encrypted. If you want to test this properly you should use a tool outside of Firefox.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文