「WWDC2018」-Web安全策略

web安全策略

web安全對iOS開發者來說重要嗎?重要!APP中通常會使用很多web頁面,例如廣告、登錄流程、閃屏,或者需要使用跨平臺功能的時候。你可能在頁面中僅僅一部分使用web,也可以整個頁面都是webView,甚至做一個web app。因此web安全對於app來說非常重要。

來自web的安全攻擊有以下幾種:

  • 跨域攻擊
  • 預測執行攻擊
  • 窗口控制攻擊

本文將針對這三種攻擊類型,給出安全防禦措施。

安全傳輸

網絡傳輸相信大家都很熟悉了,安全的傳輸能夠保證接收到的數據來自可信任的站點,並且在傳輸工程中不會被篡改。安全傳輸是其它安全措施的基礎,採取的措施包括:

  • HTTPS和WSS(webSocket Secure)
  • Http Strict Transport Security(HSTS)遵循HTTPS安全協議的web只能訪問同樣遵循HTTPS安全協議的內容,不能訪問遵循HTTP不安全協議的內容。
  • Upgrade-Insecure-Requests 請求頭中添加這一項表示web支持更加安全的升級機制,服務器可以重定向到這個站點的安全版本。
  • 使用cookie確保安全,cookie只能被安全的傳輸,例如千萬不要把cookie放到粘貼板上
  • 在app的info.plist文件中
「WWDC2018」-Web安全策略

Allow Arbitrary Loads in Web Content 這個開關一定要置為 NO!

跨域封鎖

web的內容可以來自任何站點,例如,webView上的一張圖片可以來自任何服務器,也可以從任意服務器上加載一個腳本或iframe。需要注意的是要當心來自其它服務器的資源。跨域的保護已經有20多年的歷史,並且形成了基本原則--同源策略:只有和頁面來源相同的腳本才會被該頁面執行。例如iframe來自不同的域名,同源策略不允許加載這個iframe。僅僅靠同源策略還是不夠的,還需要採取其它的防禦措施。

1. Subresource Integrity

服務器可能會發生異常導致下發錯誤的資源使得web發生crash,但是開發者通常是知道所要請求哪個資源的,在腳本里面增加一個檢查簽名。如果簽名匹配則認為是下發了正確的資源,如果不匹配仍然可以正常工作,此時嘗試從頁面的資源裡查找或者從自己的服務器重新加載。這樣做雖然降低了性能,但是提升了安全性。

-->
            

            


分享到:


相關文章: