手把手教你阻止Web應(yīng)用存儲(chǔ)敏感數(shù)據(jù)
Michael Cobb是認(rèn)證信息系統(tǒng)安全架構(gòu)專(zhuān)家(CISSP-ISSAP),知名的安全作家,具有十多年豐富的IT行業(yè)經(jīng)驗(yàn),并且還從事過(guò)十六年的金融行業(yè)。他是Cobweb Applications公司的創(chuàng)始人兼常務(wù)董事,該公司主要提供IT培訓(xùn),以及數(shù)據(jù)安全和分析的支持。Michael還合著過(guò)IIS Security一書(shū),并為領(lǐng)先的IT出版物撰寫(xiě)過(guò)無(wú)數(shù)科技文章。此外,Michael還是微軟認(rèn)證數(shù)據(jù)庫(kù)系統(tǒng)管理員和微軟認(rèn)證專(zhuān)家。
在某些情況下,自定義Web應(yīng)用會(huì)保存敏感(專(zhuān)有)數(shù)據(jù)到用戶(hù)的緩存文件夾中。如果不重新架構(gòu)該應(yīng)用,使用Sysinternals SDelete的注銷(xiāo)腳本是否可以確保數(shù)據(jù)完全被刪除且沒(méi)有任何可恢復(fù)殘留呢?
Michael Cobb:Secure Delete或SDelete是Windows命令行使用程序,它可以用來(lái)安全地刪除現(xiàn)有文件以及磁盤(pán)未分配部分的文件數(shù)據(jù)。然而,你并不能使用它來(lái)清除遠(yuǎn)程用戶(hù)設(shè)備中的數(shù)據(jù);你的Web應(yīng)用開(kāi)除的注銷(xiāo)腳本不會(huì)被授予權(quán)限來(lái)運(yùn)行這種強(qiáng)大的工具,對(duì)于Web應(yīng)用數(shù)據(jù)保護(hù),這是完全錯(cuò)誤的工具。還有更有效的方法來(lái)確保敏感數(shù)據(jù)不會(huì)被保留在用戶(hù)的緩存文件夾中。
瀏覽器保存頁(yè)面資源有兩個(gè)目的:歷史記錄和緩存。歷史記錄功能允許用戶(hù)快速還回以前瀏覽過(guò)的頁(yè)面,而緩存則用來(lái)提高性能。下載的內(nèi)容(例如標(biāo)志或博客文章)被存儲(chǔ)在用戶(hù)設(shè)備的緩存文件夾中,這樣每次用戶(hù)觀看內(nèi)容時(shí)就不用重復(fù)下載。因緩存或歷史記錄目的而存儲(chǔ)的內(nèi)容隨后都可以通過(guò)查看瀏覽器的緩存或者簡(jiǎn)單地按下瀏覽器的“后退”按鈕來(lái)查看。這可能讓信用卡信息和用戶(hù)名等敏感數(shù)據(jù)面臨風(fēng)險(xiǎn)。
為了避免這種隱私威脅,我們沒(méi)有必要重新設(shè)計(jì)應(yīng)用,只需利用數(shù)字證書(shū)和每個(gè)網(wǎng)頁(yè)中的一些額外的緩存控制頭域就可以解決緩存信息的問(wèn)題。首先安裝一個(gè)Web服務(wù)器證書(shū),并通過(guò)HTTPS提供所有內(nèi)容;這將為應(yīng)用和用戶(hù)之間傳輸?shù)臄?shù)據(jù)提供保密性。由于瀏覽器有不同的默認(rèn)行為來(lái)緩存HTTPS內(nèi)容,包含敏感信息的頁(yè)面應(yīng)該包括緩存控制頭域,以確保內(nèi)容不會(huì)被緩存。為了涵蓋各種瀏覽器版本,避免內(nèi)容被緩存的完整頭域應(yīng)該是:
具體如下:
• 緩存控制“no-store”將防止請(qǐng)求和響應(yīng)被緩存存儲(chǔ)
• 添加“private”將放置代理服務(wù)器緩存頁(yè)面
• 通過(guò)設(shè)置“must-re-validate”,“Back”按鈕不再會(huì)顯示敏感數(shù)據(jù)
• “max-age”選項(xiàng)表明響應(yīng)被緩存的時(shí)間,將其設(shè)置為“0”可以防止緩存
現(xiàn)在的瀏覽器往往較少依賴(lài)于“Expires”頭域,但為了確保安全性,企業(yè)應(yīng)該將過(guò)期時(shí)間設(shè)置為“0”,以防止較舊瀏覽器的緩存。為了與HTTP/1.0兼容,響應(yīng)還應(yīng)該包括“Pragma: no-cache”頭域。“no-transform”對(duì)移動(dòng)用戶(hù)很重要,因?yàn)橛行┮苿?dòng)運(yùn)營(yíng)商會(huì)壓縮或修改內(nèi)容來(lái)節(jié)省帶寬。
在部署這些變更后,開(kāi)發(fā)人員應(yīng)該測(cè)試應(yīng)用不再泄露敏感數(shù)據(jù)到瀏覽器緩存。對(duì)每個(gè)主流瀏覽器的緩存文件夾的手動(dòng)搜索可以確保不會(huì)存儲(chǔ)敏感數(shù)據(jù)。如果發(fā)現(xiàn)數(shù)據(jù),使用WebScarab等代理服務(wù)器來(lái)檢查服務(wù)器的響應(yīng),并檢查包含敏感信息的每個(gè)頁(yè)面。在這些網(wǎng)頁(yè)中,確保服務(wù)器正在發(fā)送正確的響應(yīng)頭域,并指示瀏覽器不緩存任何數(shù)據(jù)。






















