<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>

                > ## **XSS攻擊** ### **XSS跨域腳本攻擊** 安全圈內有一句非常有名的話:所有的輸入都是有害的!這句話把XSS漏洞的本質體現的淋漓盡致。 #### 原理 無需登錄認證,核心原理就是向你的頁面注入腳本。 1、反射型:發出請求時,XSS代碼出現在URL中,作為輸入提交到服務器端,服務器端解析后響應,XSS代碼隨響應內容一起傳回給瀏覽器,最后瀏覽器解析執行XSS代碼。 2、存儲型:存儲型XSS和反射型XSS的差別僅在于,提交的代碼會存儲在服務端(數據庫,內存,文件系統等),下次請求目標頁面時不用再提交XSS代碼。(例如:常見的評論,在文本框中輸入一段代碼,那么就會存放在數據庫當中,當再次加載的時候便會執行這樣的代碼)。 #### 常見的場景 留言、評論、注冊、登錄等 #### 攻擊示例 ##### CSS攻擊 用戶上傳的style節點、script節點、iframe節點等,場景:比如用戶在上傳的過程中構建了一個style節點,里面寫著body display:none !important,大家知道!important在CSS中的優先級最高,如果用戶上傳的里面真有這樣的CSS的話,后果是什么,后果就是任何包含這個CSS文件的頁面,用戶看到的都是空白頁面,因為body是隱藏的,攻擊完成! ##### JavaScript攻擊 新浪博客寫一篇文章,同時偷偷插入一段script,然后發布,發布完成以后如果有人看了,那么我們插入的script就會執行,攻擊代碼中獲取cookie(現在不常有了,個人信息一般會有手機號,郵箱等),接下來就會把查看著的cookie發送的攻擊者的服務器。 ~~~ alert(document.cookie) // 這段代碼意思就是獲取cookie,那么cookie中可能存在用戶的敏感信息, ~~~ #### 防御 編碼,我們對用戶的輸入不能保持原樣,要進一步處理,對用戶輸入的數據進行HTML Entity編碼(十進制或轉義字符); 正則過濾,要把不安全或不合理的內容過濾掉,比如移除用戶上傳的DOM屬性,如onerror、onclick、onmousdown、替換script為''等,除了在你的業務中有特殊需求的其它事件都要過濾掉;我們只需要把script的<>尖括號轉換了就可以了, 讓它形成不了JS的代碼塊,無法執行就可以了。 后端也可以替換;前端替換會影響性能; ~~~ // 安裝一個插件,我們自己寫的話可能考慮的不夠全 cnpm i xss -D // 使用,在需要的地方引入 const xss = require('xss') // xss其實是一個函數,我們只需要把創建博客時候的title及content包起來就可以了 const title = xss(blogData.title) // 這樣的話title里面的JS就被我們轉義了 // 轉義過后先顯示在前端頁面上就是轉義后的了,需要前端再次轉回去,這個交給前端來做,合格的后端不可能在數據庫存儲具有攻擊可能性的代碼。 ~~~
                  <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>

                              哎呀哎呀视频在线观看