2012-01-12 97 views
2

假設我有在這個位置上一個頁面上的表單提交表單到一個安全的網址...從非安全的網頁

http://mydomain.com/myform.htm 

而且形式看起來像這樣...

<form method="post" action="https://secure.otherdomain.com/handleform.php"> 
    .... 
</form> 

假設在接收此表單提交的服務器上安裝了有效的SSL證書,該表單提交的內容是否會被加密?

回答

6

POST請求將通過HTTPS傳輸(如果配置正確,則加密)。從通過普通HTTP獲取的頁面向HTTPS頁面提交表單是不好的做法。初始頁面也應通過HTTPS提供。原因是一個MITM攻擊者可能攔截用該表單加載頁面的響應,並將該鏈接替換爲指向另一個目標。

請參閱第一條規則在這裏(當然,不是具體的登陸頁):

規則 - 使用TLS爲所有登錄頁和所有驗證頁面

登錄頁面和所有後續認證的頁面必須是 通過TL獨佔訪問S.初始登錄頁面(稱爲 「登錄登錄頁面」)必須通過TLS提供。如果未能使用 TLS作爲登錄登錄頁面,則攻擊者可以修改登錄 表單操作,從而導致用戶的憑據被髮布到 任意位置。如果登錄後未能將TLS用於已驗證頁面 ,則攻擊者可以查看未加密的會話ID 並危及用戶的已驗證會話。

+0

也看到這個問題:http://security.stackexchange.com/q/1692/2435 – Bruno 2012-01-12 15:15:53

0

是的。它會被安全地傳送。

3

假設服務器和客戶端之間可以協商一個有效的SSL/TLS會話,那麼是的。這意味着客戶必須願意信任服務器提供的任何證書,並且雙方可以協商一個相互認可的密碼集(使用什麼算法等)。有很多配置選項可以設置來改變允許的內容,但是在一個「正常」的實現中,你不需要搞一個特定的,非正常的算法,需要客戶端證書認證等等,一切都應該工作得很好,你會有一個受保護的會話......如果因爲某種原因失敗了,你會知道你的客戶會收到關於錯誤的錯誤。

請注意,一般來說,雖然你可以做到這一點,而傳輸將被加密,你通常不應該。將一個未加密/受保護的頁面提交給其中一個會讓您容易受到中途攻擊中的幾種類型的Man攻擊。你可以看到OWASP的文章,以及它爲什麼不好,here