<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Web 安全總結(jié)(面試必備良藥)

          共 4457字,需瀏覽 9分鐘

           ·

          2019-12-18 23:25

          9cc94a8f1d3a1c7ab971d4c2209845c5.webp

          點擊上方藍色字體,關(guān)注我啦~~

          本文介紹以下幾種常見的 web 安全問題及解決方法:

          • 同源策略

          • XSS

          • CSRF

          • SQL注入

          • 點擊劫持

          • window.opener 安全問題

          • 文件上傳漏洞


          同源策略

          如果兩個 URL 的協(xié)議、域名和端口都相同,我們就稱這兩個 URL 同源。

          • 同源策略限制了來自不同源的 JavaScript 腳本對當(dāng)前 DOM 對象讀和寫的操作。

          • 同源策略限制了不同源的站點讀取當(dāng)前站點的 Cookie、IndexDB、LocalStorage 等數(shù)據(jù)。

          • 同源策略限制了通過 XMLHttpRequest 等方式將站點的數(shù)據(jù)發(fā)送給不同源的站點。

          解決同源策略的方法:

          • 跨文檔消息機制:? 可以通過 window.postMessage 的 JavaScript 接口來和不同源的 DOM 進行通信。

          • 跨域資源共享(CORS):? ?跨域資源在服務(wù)端設(shè)置允許跨域,就可以進行跨域訪問控制,從而使跨域數(shù)據(jù)傳輸?shù)靡园踩M行。

          • 內(nèi)容安全策略(CSP):? 主要以白名單的形式配置可信任的內(nèi)容來源,在網(wǎng)頁中,能夠使白名單中的內(nèi)容正常執(zhí)行(包含 JS,CSS,Image 等等),而非白名單的內(nèi)容無法正常執(zhí)行。


          XSS,跨站腳本攻擊(Cross?Site?Scripting)

          存儲型 XSS 攻擊

          利用漏洞提交惡意 JavaScript 代碼,比如在input, textarea等所有可能輸入文本信息的區(qū)域,輸入等,提交后信息會存在服務(wù)器中,當(dāng)用戶再次打開網(wǎng)站請求到相應(yīng)的數(shù)據(jù),打開頁面,惡意腳本就會將用戶的 Cookie 信息等數(shù)據(jù)上傳到黑客服務(wù)器。

          反射型 XSS 攻擊

          用戶將一段含有惡意代碼的請求提交給 Web 服務(wù)器,Web 服務(wù)器接收到請求時,又將惡意代碼反射給了瀏覽器端,這就是反射型 XSS 攻擊。
          在現(xiàn)實生活中,黑客經(jīng)常會通過 QQ 群或者郵件等渠道誘導(dǎo)用戶去點擊這些惡意鏈接,所以對于一些鏈接我們一定要慎之又慎。

          Web 服務(wù)器不會存儲反射型 XSS 攻擊的惡意腳本,這是和存儲型 XSS 攻擊不同的地方。

          基于 DOM 的 XSS 攻擊

          基于 DOM 的 XSS 攻擊是不牽涉到頁面 Web 服務(wù)器的。它的特點是在 Web 資源傳輸過程或者在用戶使用頁面的過程中修改 Web 頁面的數(shù)據(jù)。比如利用工具(如Burpsuite)掃描目標(biāo)網(wǎng)站所有的網(wǎng)頁并自動測試寫好的注入腳本等。

          預(yù)防策略:

          1. 將cookie等敏感信息設(shè)置為httponly,禁止Javascript通過document.cookie獲得

          2. 對所有的輸入做嚴格的校驗尤其是在服務(wù)器端,過濾掉任何不合法的輸入,比如手機號必須是數(shù)字,通常可以采用正則表達式.

          3. 凈化和過濾掉不必要的html標(biāo)簽,比如