2011-06-13 40 views
2

如果我有這個頁面中的「http://example.com/login」與GET動詞:從HTTP到HTTPS,越快越好?

<form action="https://example.com/login" method="post"> 
    <input type="text" name="login"/> 
    <input type="password" name="pass"/> 
    <input type="submit" value="Login"/> 
</form> 

它是一個安全漏洞?我的意思是,該頁面是HTTP,但發送數據時使用HTTPS。我已經多次閱讀,我應該要求HTTPS已經登錄頁面,但我不清楚爲什麼。

回答

7

是的,它是有缺陷的。只要它是用戶看到的的登錄表單,你所擁有的就是安全的,

因爲您的登錄表單不安全,所以我可以一起來替換我自己的欺騙登錄表單並收集用戶的登錄信息,例如。通過中間人攻擊。如果登錄表單和目標頁面都使用SSL,則登錄系統僅是安全的。

此外,用戶看起來並不安全。用戶在登錄表單上查找掛鎖符號,而您的用戶沒有掛鎖符號。

+1

好吧,你似乎已經徹底改變了你的意見。 :) – Gumbo 2011-06-13 10:37:19

+1

@Gumbo:我回答的時候沒有用我的大腦,然後糾正自己。通常我會在回答之前嘗試吸引我的大腦,但是今天早上我的焦慮不足。 :-) – RichieHindle 2011-06-13 10:59:47

+0

它非常有意義,謝謝! – vtortola 2011-06-13 11:14:06

5

是的,這是一個安全缺陷

由於表單是通過HTTP提供的,因此可能會沿途被編輯。例如,這種編輯可能是附加的JavaScript,它將證書發送給攻擊者控制的服務器,並讓瀏覽器正常登錄。

+1

@Quentin,你是說Twitter在登錄過程中存在安全漏洞?因爲它使用完全相同:twitter.com通過HTTP提供服務,並且位於其主頁上的登錄表單使用HTTPS(除了它使用POST而不是GET但這並不重要) – 2011-06-13 10:36:24

+2

是的,雖然它們也提供通過https的形式,所以如果你小心的話可以避免這個問題。 – Quentin 2011-06-13 10:38:39

+1

@Quentin,我不知道我理解你。該表單存在於通過HTTP提供的twitter.com上。這與OPs場景有何不同?我不相信你的解釋。 – 2011-06-13 10:40:02