2017-10-09 46 views
1

可能很基本的問題,但在閱讀類似的問題和答案後,我有點困惑,所以希望得到更多的解釋。PHP:發佈到SSL - 澄清?

如果我有一個不安全的頁面並且有一個表單發佈到受保護的頁面,那麼數據在提交後是否會被加密?

實施例: http://example.com/login.php

具有一種形式,職位,以確保頁:

https://example.com/do.php」方法=‘POST’> .....

這足以讓它成爲安全的帖子,還是初始頁面也必須安全?沒有ajax或任何東西,只是PHP ...

+0

[HTTPS頭文件是否加密?](https://stackoverflow.com/questions/187655/are-https-headers-encrypted) – Calimero

+0

該帖子將是安全的 –

+2

是的,提交的數據將被加密。但是,原始頁面中提供的任何數據都不會,因此您只爲用戶輸入的數據提供保護,而不是任何隱藏的字段/等。最有可能的是,這將是諸如用戶ID之類的東西,這可能對您不重要。總之,只要在任何地方使用SSL,幾乎沒有理由不再需要。 – iainn

回答

1

任何你通過SSL發佈是安全的在途。但那不是你的問題所在。

如果頁面有不安全的頁面http://example.com/login.php,攻擊者可以在用戶下載頁面時更改頁面,因爲沒有安全性(沒有加密,沒有完整性保護,沒有任何內容)。攻擊者可以更改表單以從登錄明文發送憑證。或者將其發送給攻擊者的服務器。或者注入任何javascript,例如在鍵被按下時向攻擊者發送每個擊鍵。攻擊者可以完全控制通過純http下載的頁面。

爲什麼攻擊者會在下一篇文章中擔心加密?他可以在發佈帖子之前獲得所有信息。因此,簡而言之,如果原始頁面是通過純http下載的,則通過ssl進行後續請求(幾乎)沒有意義 - ssl請求中的任何內容都可以被攻擊者知道。 (請注意,一些特殊情況可能是例外情況,但通常情況如此。)

一個值得注意的例外是它不是需要保護的請求,而是響應 - 將在一個ssl交換,我認爲一個不同的協議,https和http將被視爲不同的來源,所以即使JavaScript被注入到原始明文頁面,從響應中獲取信息也將變得更加困難。但是,login.php的功能並非如此 - 必須通過https提供服務。