<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## **一、什么是 XSS ?** XSS (Cross Site Scripting),即跨站腳本攻擊,是一種常見于 Web 應用中的計算機安全漏洞。惡意攻擊者往 Web 頁面里嵌入惡意的客戶端腳本,當用戶瀏覽此網頁時,腳本就會在用戶的瀏覽器上執行,進而達到攻擊者的目的。比如獲取用戶的 Cookie、導航到惡意網站、攜帶木馬等。借助安全圈里面非常有名的一句話: ~~~text 所有的輸入都是有害的。 ~~~ 這句話把 XSS 漏洞的本質體現的淋漓盡致。大部分的 XSS 漏洞都是由于沒有處理好用戶的輸入,導致惡意腳本在瀏覽器中執行。任何輸入提交數據的地方都有可能存在 XSS。 ## **二、XSS 攻擊分類** 第一種:反射型 第二種:持久型 第三種:DOM 型( DOM Based XSS ) ## **三、XSS 防御** **1、使用 XSS Filter** 針對用戶提交的數據進行有效的驗證,只接受我們規定的長度或內容的提交,過濾掉其他的輸入內容。比如: 表單數據指定值的類型:年齡只能是 int 、name 只能是字母數字等。 過濾或移除特殊的 html 標簽:\<script\>、\<iframe\>等。 過濾 js 事件的標簽:onclick、onerror、onfocus等。 **2、html 實體** 當需要往 HTML 標簽之間插入不可信數據的時候,首先要做的就是對不可信數據進行 HTML Entity 編碼, 在 html 中有些字符對于 HTML 來說是具有特殊意義的,所以這些特殊字符不允許在文本中直接使用,需要使用實體字符。 html 實體的存在是導致 XSS 漏洞的主要愿意之一,因此我們需要將實體轉化為相應的實體編號。 **3、JavaScript編碼** 這條原則主要針對動態生成的JavaScript代碼,這包括腳本部分以及HTML標簽的事件處理屬性(如onerror, onload等)。 在往JavaScript代碼里插入數據的時候,只有一種情況是安全的,那就是對不可信數據進行JavaScript編碼, 并且只把這些數據放到使用引號包圍起來的值部分(data value)之中,除了上面的那些轉義之外,還要附加上下面的轉義: \ 轉成 \\ / 轉成 \/ ; 轉成 ;(全角;) 注意:在對不可信數據做編碼的時候,不能圖方便使用反斜杠\ 對特殊字符進行簡單轉義,比如將雙引號 ”轉義成 \”, 這樣做是不可靠的,因為瀏覽器在對頁面做解析的時候,會先進行HTML解析,然后才是JavaScript解析, 所以雙引號很可能會被當做HTML字符進行HTML解析,這時雙引號就可以突破代碼的值部分,使得攻擊者可以繼續進行XSS攻擊; 另外,輸出的變量的時候,變量值必須在引號內部,避免安全問題;更加嚴格的方式,對除了數字和字母以外的所有字符, 使用十六進制\xhh 的方式進行編碼。 **4、Http Only cookie** 許多 XSS 攻擊的目的就是為了獲取用戶的 cookie,將重要的 cookie 標記為 http only, 這樣的話當瀏覽器向服務端發起請求時就會帶上 cookie 字段,但是在腳本中卻不能訪問 cookie, 這樣就避免了 XSS 攻擊利用 js 的 document.cookie獲取 cookie。 HttpOnly是cookie里面一個屬性,假如在cookie里面設置了HttpOnly這個屬性,那么JavaScript將無法訪問到我們到cookie, 但是這個方法也只能是防御cookie劫持。HttpOnly設置規則如下。 ``` <?php ????header("set-cookie: username=admin"); ????header("set-cookie: password=123456;httponly",false); ?> ``` **5、X-Frame-Options配置:** 低危漏洞- X-Frame-Options Header未配置X-Frame-Options 響應頭 X-Frame-Options HTTP 響應頭是用來給瀏覽器指示允許一個頁面可否在 \<frame\>, \</iframe\> 或者 \<object\> 中展現的標記。 網站可以使用此功能,來確保自己網站的內容沒有被嵌到別人的網站中去,也從而避免了點擊劫持 (clickjacking) 的攻擊。 使用 X-Frame-Options &nbsp; X-Frame-Options 有三個值: **&emsp;&emsp;DENY** &emsp;&emsp;表示該頁面不允許在 frame 中展示,即便是在相同域名的頁面中嵌套也不允許。 **&emsp;&emsp;SAMEORIGIN** &emsp;&emsp;表示該頁面可以在相同域名頁面的 frame 中展示。 **&emsp;&emsp;ALLOW-FROM uri** &emsp;&emsp;表示該頁面可以在指定來源的 frame 中展示。 &emsp;&emsp;換一句話說,如果設置為 DENY,不光在別人的網站 frame 嵌入時會無法加載,在同域名頁面中同樣會無法加載。另一方面,如果設置為 SAMEORIGIN,那么頁面就可以在同域名頁面的 frame 中嵌套。 &nbsp; **配置代理服務器**: **&emsp;&emsp;配置 Apache** &emsp;&emsp;在所有頁面上發送 X-Frame-Options 響應頭,需要把下面這行添加到 ‘site’ 的配置中: ``` Header always append X-Frame-Options SAMEORIGIN ``` **&emsp;&emsp;配置 nginx** &emsp;&emsp;配置 nginx 發送 X-Frame-Options 響應頭,把下面這行添加到 ‘http’, ‘server’ 或者 ‘location’ 的配置中: ``` add_header X-Frame-Options SAMEORIGIN; ``` **&emsp;&emsp;配置 IIS** &emsp;&emsp;配置 IIS 發送 X-Frame-Options 響應頭,添加下面的配置到 Web.config 文件中: ``` <system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol> ... </system.webServer> ``` &nbsp; **總結:** 對輸入輸出做嚴格的過濾、添加HttpOnly、X-Frame-Options配置
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看