前端安全問題

1.防火防盜防豬隊友:不安全的第三方依賴包前端

舉個例子,jQuery就存在多個已知安全漏洞,例如jQuery issue 2432,使得應用存在被XSS攻擊的可能。而Node.js也有一些已知的安全漏洞,好比CVE-2017-11499,可能致使前端應用受到DoS攻擊。算法

2.黑客能夠利用SSL Stripping這種攻擊手段,強制讓HTTPS降級回HTTP,從而繼續進行中間人攻擊。瀏覽器

3.儘管有瀏覽器的同源策略限制,可是若是前端應用有XSS漏洞,那麼本地存儲的全部數據就均可能被攻擊者的JS腳本讀取到。若是用戶在公用電腦上使用了這個前端應用,那麼當用戶離開後,這些數據是否也被完全清除了呢?前端對數據加密後再存儲看上去是個防護辦法,但其實僅僅提升了一點攻擊門檻而已,由於加密所用到的密鑰一樣存儲在前端,有耐心的攻擊者依然能夠攻破加密這道關卡。安全

因此,在前端存儲敏感、機密信息始終都是一件危險的事情,推薦的作法是儘量不在前端存這些數據。性能

4.缺少靜態資源完整性校驗編碼

出於性能考慮,前端應用一般會把一些靜態資源存放到CDN(Content Delivery Networks)上面,例如Javascript腳本和Stylesheet文件。這麼作能夠顯著提升前端應用的訪問速度,但與此同時卻也隱含了一個新的安全風險。加密

5.若是攻擊者劫持了CDN,或者對CDN中的資源進行了污染,那麼咱們的前端應用拿到的就是有問題的JS腳本或者Stylesheet文件,使得攻擊者能夠肆意篡改咱們的前端頁面,對用戶實施攻擊。這種攻擊方式形成的效果和XSS跨站腳本攻擊有些類似,不過不一樣點在於攻擊者是從CDN開始實施的攻擊,而傳統的XSS攻擊則是從有用戶輸入的地方開始下手的。code

防護這種攻擊的辦法是使用瀏覽器提供的SRI(Subresource Integrity)功能。顧名思義,這裏的Subresource指的就是HTML頁面中經過<script><link>元素所指定的資源文件。ip

每一個資源文件均可以有一個SRI值,就像下面這樣。它由兩部分組成,減號(-)左側是生成SRI值用到的哈希算法名,右側是通過Base64編碼後的該資源文件的Hash值。資源

相關文章
相關標籤/搜索