題記:html
簡易分析百度網盤:node
一、先將全部cookie清空,帳號取消登陸ajax
二、打開chrome,輸入分享的連接,在跳轉連接以前,打開開發者選項,監控文件變化chrome
三、敲擊回車,發現url連接發生變化數據庫
四、url從 /s/1L... 變爲 /share/init?surl=Lrw...express
五、這時候看network中加載的文件變成302狀態後端
六、302表明重定向,意思是原來URL重定向至新的地址,也就是說,百度網盤服務器那邊判斷你這個分享連接沒有輸入過密碼,也就沒存儲cookie,因此本來訪問的頁面被重定向至新的密碼頁安全
七、這時候咱們輸入正確密碼,從新加載分享連接,發現返回正確的html,和200狀態服務器
八、而且會發現cookie中存入不少內容,而且頁面在訪問後端時,會自動攜帶cookie(最近一段時間我一直在用localstorage,因此忘了cookie,能夠自動攜帶)cookie
因此經過上分析,發現主要存於cookie內容中,實現的加密訪問
下面就是我寫的加密網頁原理(我使用的是nodejs,ejs模板,express),由於後端能夠用好多種去寫,這裏只寫思路,不寫具體代碼
前期準備工做,必須有個加密路徑的數據表
id | path | password | plaintext | random_code | time |
通常爲uuid | 請求的路徑,根據本身喜愛寫,個人就是 /a.html | sha256加密,字符串爲明文密碼鏈接上id和隨機碼 | 明文密碼不進行單向加密 | 隨機碼隨機的一組大小寫字母加數字 | 建立時間 |
一、當人們訪問a.html,也就是加密不想讓訪問的頁面,由於頁面會自動攜帶cookie
二、因此咱們在後端拿到cookie,和請求路徑時,而後進行數據庫對比,這裏有個問題,若是隻有HTML加密,則先判斷下請求的是html仍是其餘的,能夠減小查詢
三、若是在表中找到這個請求路徑,則查看cookie中是否有id=password這個數據,有的話就直接返回請求的html文件
四、若是不存在數據,則返回渲染的輸入密碼的html,本身想辦法把原來路徑放入輸入密碼html,輸入正確密碼後好跳轉
五、輸入密碼,ajax請求,經過輸入的明文密碼,以及id和數據庫中的隨機碼,變爲字符串鏈接起來,和password比較,或者直接比較明文密碼是否相同
六、一旦正確,爲了安全起見,返回加密後的password,也就是密文
七、在密碼html的js中,將獲得的密文和id存入cookie中,跳轉到原來訪問的頁面
八、這個時候有cookie了,而後對比成功,返回a.html文件
以上只是個人初期測試寫法,也許有更好的,和更優化的方法,歡迎指正
本文能夠隨意轉載分享,可是請標明出處
下面爲測試圖片