2016-08-04 88 views
1

我有一個需要用戶登錄的網站。而且由於所有內容都無法通過https訪問,因此我們決定僅將https用於登錄頁面。僅適用於登錄頁面的HTTPS - 是否推薦?

頁面上提交的所有其他數據都不敏感,不需要加密。

這種方法可以危害用戶的登錄憑據嗎?將所有其他頁面放在http上 - 攻擊者是否可以訪問用戶會話cookie中的憑據?

我可以看到許多網站採用這種方法,所以我認爲這可能是安全的 - 但想了解背後的技術。

+3

「提交的頁面上的所有其他數據的不敏感」說誰呢?我關心我的隱私。我也很關心能夠確定我確實在我喜歡的網站上。 – PeeHaa

+0

另外,如果你使用的是非https的cookie,它會泄漏出來。 – PeeHaa

回答

4

擁有僅HTTPS在登錄頁上是不安全的

  • 這意味着你不使用HSTS,這是對SSLSrip唯一保護
  • 這意味着攻擊者可以更換你的http頁面通過別的東西鏈接到登錄頁面(比如向他的服務器提交憑據的popin)
  • 一旦用戶連接,cookie 必須必須具有安全屬性(它如果沒有,很容易竊取cookie。見firesheep)

唯一安全的方法是使用HTTPS在您的域的所有網頁,使用HSTS和重定向所有HTTP請求到https。

這種方法可以危害用戶的登錄憑據嗎?將所有其他頁面放在http上 - 攻擊者是否可以訪問用戶會話cookie中的憑據?

攻擊者可以竊取會話cookie,所以他大概可以做很多傷害(這取決於你的保安措施,更改密碼,電子郵件,提取的personnal數據...),他可以模擬斷線再次詢問http網頁上的密碼。

我看到許多網站有這種做法,所以我想可能是安全

不,不是這樣的。他們可能網站太大,無法在任何地方打開https,因此他們盡其所能限制了損失。 (或者它們只是懶惰的)

-1
  1. HTTPS只能爲提供的登錄頁面實現安全標誌爲應用程序啓用。 安全標誌將防止以明文形式傳輸Cookie。 未能使用「安全」標記,攻擊者可通過欺騙用戶的瀏覽器向網站上的非HTTPS頁面提交請求來獲取會話cookie。
  2. HTTPS應該用於登錄頁面和所有其他認證頁面。登錄頁面上的HTTPS以加密格式傳遞憑據,但所有其他授權請求以未加密格式傳輸意味着如果任何HTTP請求使用會話標識,會話標識將以純文本形式傳輸。

最好的方法是對所有頁面使用HTTPS,以確保完整的數據以加密格式傳輸。

編號:https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet

+0

「HTTPS只能用於提供登錄頁面的應用程序啓用了安全標誌」是錯誤的:如果您有安全標誌(您應該!),那麼需要身份驗證的頁面(非登錄頁面)必須是https或它們將不會收到身份驗證Cookie。 – Tom

相關問題