[發明專利]基于改進CSP策略的XSS防御系統和方法有效
| 申請號: | 201810995401.3 | 申請日: | 2018-08-29 |
| 公開(公告)號: | CN109218296B | 公開(公告)日: | 2021-03-23 |
| 發明(設計)人: | 黃書涵;許光全;郭峰;邱鐵;黃雨 | 申請(專利權)人: | 天津大學 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06;H04L29/08 |
| 代理公司: | 天津市北洋有限責任專利代理事務所 12201 | 代理人: | 劉國威 |
| 地址: | 300072*** | 國省代碼: | 天津;12 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 改進 csp 策略 xss 防御 系統 方法 | ||
1.一種基于改進CSP策略的XSS防御系統,其特征是,由四個部分組成,策略生成模塊,策略執行模塊,后端模塊以及瀏覽器本地存儲模塊,其中策略生成模塊根據純凈的web頁面,即不含惡意代碼的頁面生成對應的安全策略,并向后端模塊下達命令,將策略存儲在瀏覽器本地存儲模塊中,策略執行模塊用于向后臺下達命令,獲取之前生成的安全策略并執行;后端模塊還會對惡意腳本所發出的請求進行攔截;其中,安全策略具體包括:
1)沙盒策略:通過加入一條策略指令"eval":false來禁止Javascript函數eval的使用;
2)DOM元素策略:用于限制頁面中DOM元素的源,通過標記script標簽,以及含有事件監聽器event-handler的元素的位置,來生成白名單策略;
3)數據策略:用于保護DOM文檔中的重要數據,使之無法被攻擊者讀寫,所述重要數據包括form表單的password輸入框的value值、document對象的cookie屬性和window對象的localStorage屬性;
策略生成具體地:
1)沙盒策略:對于未在正常頁面使用過的危險對象或函數的get方法添加鉤子,從而確定沒有使用過的函數或對象,然后據此生成相應的策略指令;
2)DOM元素策略:所有DOM樹里面的元素會被提取出來,所述元素的標簽名會被保存到一個白名單中;
3)數據策略:添加策略指令用于保護重要數據,使用Object.defineProperty方法來限制Javascript腳本對所述重要數據的讀寫權限;
策略執行具體地:首先會停止渲染DOM樹,以防惡意腳本執行,然后重新加載當前頁面并且將內容復制到一個安全的DOM樹中,所述DOM樹中的所有節點都會被設置為不可修改的狀態,從而阻止攻擊者修改已有的DOM屬性,在此之后瀏覽器本地存儲里面的安全策略將會被取出,并交給策略執行器去執行,DOM樹將會被修改,惡意元素會被打上標記并刪除,策略禁止的危險函數和對象將會被直接刪除,從而得到一個干凈的DOM樹;如果在安全策略中有數據或者元素需要被保護,則采用DOM監聽器去監聽對所述數據或元素的訪問,并把重要的數據置為不可讀寫的狀態,同時向DOM中加入內聯腳本,所述內聯腳本會給用來新建或者是添加標簽的函數添加函數鉤子Hook,所述函數鉤子會對動態創建的元素施加對應的限制;最后,修改后的DOM文檔內容以及施加函數鉤子所需的腳本會被寫入原頁面中的DOM樹,并交由瀏覽器繼續渲染。
2.一種基于改進CSP策略的XSS防御方法,其特征是,步驟如下:
第一步,在瀏覽器上安裝并加載基于Javascript的內容安全策略(JSCSP)擴展;
第二步,選定需要添加XSS防御的web頁面,首先需要保證該頁面未被注入XSS攻擊代碼;
第三步,待第二步中的頁面加載完畢后,生成安全策略,所述安全策略包括三類:沙盒策略、DOM元素策略和數據策略;
第四步,JSCSP執行模塊則會根據已生成的安全策略對攻擊向量進行過濾,從而得到純凈的頁面;其中,安全策略具體包括:
1)沙盒策略:通過加入一條策略指令"eval":false來禁止Javascript函數eval的使用;
2)DOM元素策略:用于限制頁面中DOM元素的源,通過標記script標簽,以及含有事件監聽器event-handler的元素的位置,來生成白名單策略;
3)數據策略:用于保護DOM文檔中的重要數據,使之無法被攻擊者讀寫,所述重要數據包括form表單的password輸入框的value值、document對象的cookie屬性和window對象的localStorage屬性;
策略生成具體地:
1)沙盒策略:對于未在正常頁面使用過的危險對象或函數的get方法添加鉤子,從而確定沒有使用過的函數或對象,然后據此生成相應的策略指令;
2)DOM元素策略:所有DOM樹里面的元素會被提取出來,所述元素的標簽名會被保存到一個白名單中;
3)數據策略:添加策略指令用于保護重要數據,使用Object.defineProperty方法來限制Javascript腳本對所述重要數據的讀寫權限;
策略執行具體地:
首先會停止渲染DOM樹,以防惡意腳本執行,然后重新加載當前頁面并且將內容復制到一個安全的DOM樹中,所述DOM樹中的所有節點都會被設置為不可修改的狀態,從而阻止攻擊者修改已有的DOM屬性,隨后瀏覽器本地存儲里面的安全策略將會被取出,并交給策略執行器去執行,DOM樹將會被修改,惡意元素會被打上標記并刪除,策略禁止的危險函數和對象將會被直接刪除,從而得到一個干凈的DOM樹;如果在安全策略中有數據或者元素需要被保護,則采用DOM監聽器去監聽對所述數據或元素的訪問,并把重要的數據置為不可讀寫的狀態,同時向DOM中加入內聯腳本,所述內聯腳本會給用來新建或者是添加標簽的函數添加函數鉤子Hook,所述函數鉤子會對動態創建的元素施加對應的限制;最后,修改后的DOM文檔內容以及施加函數鉤子所需的腳本會被寫入原頁面中的DOM樹,并交由瀏覽器繼續渲染。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于天津大學,未經天津大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810995401.3/1.html,轉載請聲明來源鉆瓜專利網。





