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