登入,是做web開發的程式設計師做專案第一接觸到的模組,看似簡簡單單的登入背後囊括了程式設計知識的方方面面。
登入安全嗎?密碼會不會洩露?
網際網路開始的時候,登入確實是使用明文校驗的,甚至資料來源中存的也是明文密碼,後來隨著黑客的誕生,和隱私安全保護的考慮,密碼開始使用密文儲存。
於是認證的過程變成了這樣,使用者註冊時,資料庫儲存了加密的密碼,當使用者登入時,web系統接收到使用者的明文密碼,系統加密後與資料庫中的加密密碼再作比較。
可是,我們發現傳輸密碼的過程還是傳的明文!只要我截獲了你註冊或登入的資料報,你的密碼就洩露了。
https誕生了,它不僅可以將你要傳輸的密碼加密傳輸,甚至你的所有請求資料在網路傳輸中都是加密的,別人拿到資料報也沒用。
但,https真的安全嗎?
https是加密傳輸, 所以抓到包也沒有用, 是密文的。 真是的這樣嗎? 有人做實驗抓到了某**登入的密碼, 是明文的,結果多試幾個, 結果抓到了許多https傳明文密碼。
為什麼用https抓包, 還是能看到明文內容呢? 這裡我們要理解https的棧流程, 梳理一下就知道, 加密層位於http層和tcp層之間, 所以抓到的http層的資料並沒有加密。 同理, 在後台接收端, 經歷解密後, 到達http層的資料也是明文。 要注意, https不是對http報文進行加密, 而是對傳輸資料進行加密, 最終還原http原始報文。
這裡不得不再次強調,https保證的是傳輸過程中第三方抓包看到的是密文。客戶端和服務端,無論如何都可以拿到明文。其實大多數人認為https加密傳輸安全是因為沒有真正理解https的真實原理。
上邊說道,https能避免傳輸的過程中,如果有人截獲到資料報只能看到加密後的資訊,但是防不了在服務端和客戶端擷取資料的人。伺服器端自不必說,如果黑客都能取到伺服器的資料了那你加不加密估計也沒什麼意義了,但客戶端就不一樣了,許多密碼洩露都是在客戶端洩露的。所以客戶端密碼保護很重要!顯然https這點就做不到了。那麼,就只有寫程式的人自己定義加密方式了。
你的登入介面真的安全嗎?
大家學寫程式時,第一行 都是hello world。但是當你開始學習web後台技術時,很多人的第乙個功能就是寫的登入 小聲 別人我不知道,反正我是 但是我在和很多任務作經驗較短的同學面試或溝通的時候,發現很多同學雖然都有在簡歷上寫 負責專案的登入 註冊功能模組的開發和設計工作,但是都只是簡單的實現了...
Weak Strong Dance 真的安全嗎?
絕大多數ios開發者用過block,並且知道用 weak的方式去解決迴圈引用的問題。而高階一些的開發者則了解weak strong dance,那麼什麼是weak strong dance?它能保證block執行是的 安全 嗎?看看下面兩段 的區別,你就明白什麼是weak strong dance了...
Docker容器真的安全嗎?
本文基於我今年在dockercon上的演講。它將討論docker容器安全性,我們當前的位置以及發展的方向。這是有關docker安全性的系列文章的一部分 請閱讀第二部分 我聽到並讀到很多人都認為docker容器實際上是沙箱應用程式 意味著他們可以使用docker作為根在自己的系統上執行隨機應用程式。他...