2009-09-07 27 views
0

我想使用HTTPS保護我的Rails應用程序的登錄表單。經過一番艱苦的鬥爭後,我現在已經安裝了SSL證書並正確設置了Apache/Passenger。Rails的form_tag幫助程序不使用HTTPS提交?

我的申請使用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

由於Firebug是Firefox內的擴展,它可能會在請求數據被加密之前看到它。如果你想正確地測試,你應該使用Firefox以外的工具。

+0

您的陳述是正確的。我測試了一些其他具有安全表單的網站,並且該字段內容在Firebug中顯示爲純文本。 – 2009-09-10 19:06:10

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

這對你有幫助嗎? – Lichtamberg 2009-09-10 13:14:37

+0

在向我指出正確的方向,這是我必須確保表單提交到https路徑。我在我的問題編輯中詳細實現了它。謝謝。 – 2009-09-10 19:04:44