前段時間讀了《白帽子講Web安全》,很不錯的一本安全書籍,適合我這種安全小白。這篇文章是對客戶端腳本部分的總結(jié)骂远。
安全本質(zhì)
安全的本質(zhì)是信任。安全方案設計的基礎(chǔ)是建立在信任之上腰根,我們必須信任某些東西,必須有一些基本的假設拓型。從另外一個方面講额嘿,如果我們作為決策依據(jù)的條件被打破瘸恼,被繞過,那么就會導致安全假設的前提不再可靠册养。
瀏覽器安全
同源策略
相同協(xié)議东帅,域名,子域名球拦,端口都相同才會被認為是同源靠闭。限制了來自不同源的腳本或者document對當前document的修改。
同源策略是瀏覽器安全的基礎(chǔ)坎炼±颍可以想象如果沒了同源策略,那么我通過腳本直接修改任何一個網(wǎng)站的東西谣光,這不是亂套了嗎檩淋?
注意有一些標簽不收同源策略的影響,比如link萄金,script蟀悦,img,這些標簽的src屬性相當于發(fā)起了一次get請求氧敢。
XSS攻擊
說白了就是把一段javascript腳本注入到輸出的html中日戈,使得渲染html的時候,解析了javascript腳本并且運行攻擊代碼孙乖。
XSS攻擊是非常常見的一種攻擊方式浙炼,我自己就在我們官網(wǎng)找到了一處反射XSS漏洞(直接把用戶輸入的搜索字符串打印到了搜索歷史中,所以我如果輸入搜索<script>alert(1)</script>
的就會彈出1)的圆。
XSS攻擊可以干啥鼓拧,還是用上面我們官網(wǎng)的例子。如果我不是執(zhí)行alert(1),而是發(fā)送一個刪除帖子的API請求越妈,那么只要點了這個鏈接那么這個用戶發(fā)表過的文章就都被刪除了季俩,甚至我可以給他的好友群發(fā)站內(nèi)信把我構(gòu)造的鏈接加上,那么每一個打開這個鏈接用戶都會中招梅掠,然后又會給他們的好友再群發(fā)站內(nèi)信酌住,這就構(gòu)造了一個XSS蠕蟲!所以千萬不要低估XSS的危害阎抒。
如何防止XSS攻擊
http-only
嚴格來說http-only是防止被XSS攻擊之后的cookie劫持的問題。加了http-only之后的cookie不能被javascript訪問到且叁。給關(guān)鍵業(yè)務和敏感信息的cookie添加http-only是業(yè)界通用的處理方式
輸入/輸出檢查
輸入檢查在不同的語境下面有不同的方式都哭。比如登錄框只限制手機號碼,搜索框只允許出現(xiàn)英文中文字母,社區(qū)評論的富文本要稍微復雜一些欺矫。
變量輸出到HTLM的時候要使用HtmlEncode編碼轉(zhuǎn)一遍纱新,我上面講的那個XSS問題就可以通過這個解決。