本發(fā)明涉及交互式數(shù)據(jù)可視化應(yīng)用領(lǐng)域,特別涉及一種交互式數(shù)據(jù)系統(tǒng)通用安全防護系統(tǒng)。
背景技術(shù):
應(yīng)用系統(tǒng)的安全性越來越受到人們的關(guān)注,利用web應(yīng)用系統(tǒng)的漏洞進行入侵、滲透已經(jīng)成為互聯(lián)網(wǎng)安全隱患之一,如何保障系統(tǒng)安全和企業(yè)核心數(shù)據(jù)不受破壞,已成為企業(yè)信息部門的焦點問題。
軟件系統(tǒng)的信息安全,包括信息保密性、完整性和可用性。保密性:指高級別信息僅在授權(quán)情況下流向低級別的客戶體;完整性:指信息不會被非授權(quán)修改,信息保持一致性等;可用性:指合法用戶的正常請求能及時、正確、安全地得到服務(wù)或回應(yīng)。傳統(tǒng)web應(yīng)用系統(tǒng)的做法是,it人員事先根據(jù)需求,分解出系統(tǒng)的安全需求,并對安全需求進行定制化開發(fā),將安全模塊和系統(tǒng)其他部分定制開發(fā)為一個整體,這樣做的問題是,針對不同的web應(yīng)用系統(tǒng),即使其面對的是同樣的或相似的安全需求時,均需要重新定制開發(fā),造成研發(fā)資源浪費。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中需要對每一個不同的web系統(tǒng)的不同安全需求做定制開發(fā),即使不同web系統(tǒng)安全需求相似也需要重新進行整體設(shè)計的問題,提供一種可以針對多種系統(tǒng)進行防護的交互式數(shù)據(jù)web系統(tǒng)通用安全防護系統(tǒng)。
為了實現(xiàn)上述發(fā)明目的,本發(fā)明提供了以下技術(shù)方案:
一種交互式數(shù)據(jù)系統(tǒng)通用安全防護系統(tǒng),依次包括,
數(shù)據(jù)輸入接口,與交互式數(shù)據(jù)系統(tǒng)的人機交互輸入連接;
防護模塊,對子數(shù)據(jù)輸入接口輸入的數(shù)據(jù)進行安全檢測,將通過安全檢測的數(shù)據(jù)自數(shù)據(jù)輸出接口輸出;
數(shù)據(jù)輸出接口,與交互式數(shù)據(jù)系統(tǒng)的數(shù)據(jù)處理模塊連接。
進一步的,所述防護模塊包括鑒權(quán)資源注冊模塊、csrf攻擊防護模塊、參數(shù)校驗?zāi)K、跨站腳本攻擊防護模塊、登錄檢驗?zāi)K、sql注入防護模塊、xml實體注入攻擊防護模塊中的至少兩種;各個模塊按照指定順序依次對輸入數(shù)據(jù)進行安全檢測;
所述鑒權(quán)資源注冊模塊用于對交互式數(shù)據(jù)系統(tǒng)的菜單請求數(shù)據(jù)以及輸入的url進行鑒權(quán);
所述csrf攻擊防護模塊用于對數(shù)據(jù)進行csrf攻擊防護檢測;
所述參數(shù)校驗?zāi)K用于對接收的所有url的參數(shù)進行參數(shù)校驗;
跨站腳本攻擊防護模塊用于接收到數(shù)據(jù)進行跨站腳本攻擊防護;
登錄校驗?zāi)K用于對登錄用戶的權(quán)限進行檢測;
sql注入防護模塊用于防止sql注入攻擊;
xml實體注入攻擊防護模塊用于防止xml實體注入攻擊。
進一步的,所述csrf攻擊防護模塊對每個請求的參數(shù)中攜帶的token值進行校驗;所述token值為安全隨機數(shù);
請求中加入token值的方法為:使用csrf請求屬性來獲取當前的csrftoken;或,使用springsecurity的jsp標簽庫中的csfrinput標簽。
進一步的,所述sql注入防護模塊使用preparedstatement防范sql注入攻擊,或,使用spring提供的namedparameterjdbctemplate類執(zhí)行sql防范sql注入攻擊。
進一步的,所述xml實體注入攻擊防護模塊通過解析http/https請求中xml結(jié)構(gòu)參數(shù)防止xml實體注入、解析靜態(tài)xml配置文件防止xml實體注入或解析excel防止xml實體注入。
進一步的,所述防護模塊包括隱私保護模塊,所述隱私保護模塊用于根據(jù)用戶的設(shè)置,對指定的參數(shù)進行全部隱藏顯示或部分隱藏顯示。
進一步的,所述防護模塊包括個性化設(shè)置模塊,所述個性化設(shè)置模塊用于用戶設(shè)置交互式數(shù)據(jù)系統(tǒng)中參數(shù)的必填項和/或參數(shù)的類型、取值范圍。
進一步的,所述防護模塊包括運行日志保護模塊用于對交互式數(shù)據(jù)系統(tǒng)的所有操作記錄日志,并對日志的訪問進行控制,同時,對日志中的敏感數(shù)據(jù)進行匿名化處理。
進一步的,所述防護模塊包括運行動態(tài)處理模塊,所述運行動態(tài)處理模塊用于協(xié)調(diào)所述防護模塊中其他各個功能模塊的運行
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果:本發(fā)明通過提供一種交互式數(shù)據(jù)系統(tǒng)通用安全防護系統(tǒng)可達到如下效果:
1、對于業(yè)務(wù)編排人員:不需要知曉本發(fā)明提供安全系統(tǒng)的具體開發(fā)技術(shù),只需要了解本發(fā)明提供的安全防護系統(tǒng)提供的功能、接口和使用方法,就能通過將本發(fā)明提供的安全系統(tǒng)接口與交互式數(shù)據(jù)系統(tǒng)對接,從而獨立地編排出具有安全能力的交互式數(shù)據(jù)web應(yīng)用系統(tǒng)。
2、對于數(shù)據(jù)可視化的交互式數(shù)據(jù)應(yīng)用平臺:本發(fā)明提供安全系統(tǒng)采用松耦合設(shè)計,分解成多個獨立模塊,只要平臺具有擴展模塊的能,就能將各個模塊有機的組合起來,生成具有安全能力的web應(yīng)用系統(tǒng)。
3、對于項目組:本發(fā)明提供安全系統(tǒng)的各模塊具有高復(fù)用性,模塊開發(fā)完成能應(yīng)用于所有web應(yīng)用系統(tǒng),不再為每個交互式數(shù)據(jù)應(yīng)用(app)定制化開發(fā)而投入人力,大大地提高了開發(fā)效率、節(jié)省開發(fā)資源、加快開發(fā)周期。
4、對于交互式數(shù)據(jù)應(yīng)用的升級:本發(fā)明提供安全系統(tǒng)的各模塊具有獨立發(fā)布,獨立安裝的能力。從而避免了交互式數(shù)據(jù)應(yīng)用與安全必須捆綁發(fā)布的困境,大大提升企業(yè)的it集成實施能力。
附圖說明:
圖1是本發(fā)明提供的交互式數(shù)據(jù)系統(tǒng)通用安全防護系統(tǒng)應(yīng)用示意圖。
圖2是本發(fā)明提供的交互式數(shù)據(jù)系統(tǒng)通用安全防護系統(tǒng)安全處理流程示例。
圖3是本發(fā)明提供的交互式數(shù)據(jù)系統(tǒng)通用安全防護系統(tǒng)個性化安全需求的動態(tài)解析及校驗處理。
圖4是本發(fā)明中安全防護系統(tǒng)加載到具體應(yīng)用中的流程實施例。
具體實施方式
下面結(jié)合附圖及具體實施例對本發(fā)明作進一步的詳細描述。但不應(yīng)將此理解為本發(fā)明上述主題的范圍僅限于以下的實施例,凡基于本發(fā)明內(nèi)容所實現(xiàn)的技術(shù)均屬于本發(fā)明的范圍。
如圖1所示,本實施例提供一種交互式數(shù)據(jù)系統(tǒng)通用安全防護系統(tǒng),依次包括,
數(shù)據(jù)輸入接口,與交互式數(shù)據(jù)系統(tǒng)的人機交互輸入連接;
防護模塊,對子數(shù)據(jù)輸入接口輸入的數(shù)據(jù)進行安全檢測,將通過安全檢測的數(shù)據(jù)自數(shù)據(jù)輸出接口輸出;
數(shù)據(jù)輸出接口,與交互式數(shù)據(jù)系統(tǒng)的數(shù)據(jù)處理模塊連接。
所述防護模塊包括鑒權(quán)資源注冊模塊、csrf攻擊防護模塊、參數(shù)校驗?zāi)K、跨站腳本攻擊防護模塊、登錄檢驗?zāi)K、sql注入防護模塊、xml實體注入攻擊防護模塊,我們將以上所有模塊的集合體稱之為web安全模塊;web安全模塊各個模塊按照指定順序依次對輸入數(shù)據(jù)進行安全檢測。另外,本實施例中,防護模塊還包括隱私保護模塊、個性化設(shè)置模塊、運行日志保護模塊和運行動態(tài)處理模塊;但是應(yīng)注意的是,用戶可根據(jù)自己app的具體需要對上述模塊進行選擇全部啟用或者部分啟用,本實施例中,以全部啟用為例進行解釋。
請注意的是,鑒權(quán)資源注冊模塊用于對交互式數(shù)據(jù)系統(tǒng)的菜單請求數(shù)據(jù)以及輸入的url進行鑒權(quán);理論上,數(shù)據(jù)可視化平臺(交互式數(shù)據(jù)系統(tǒng))的所有具體應(yīng)用(app)的菜單以及界面的url請求都需要經(jīng)過鑒權(quán)資源注冊的鑒權(quán);具體的,用戶需要先將app的所有url按照其安全配置模板進行配置;而在編譯打包生成具體的app時,解析app包含的url資源信息,動態(tài)生成install和uninstall的url資源定義sql腳本,放在app安裝包的對應(yīng)目錄下;注冊的資源信息里,包含界面框架、界面導(dǎo)航樹、功能,從而實現(xiàn)精細化訪問安全控制;安裝app時,將上述sql腳本寫入到數(shù)據(jù)庫的對應(yīng)表中;對應(yīng)表如可以是資源定義信息表、資源和角色歸屬關(guān)系表、資源定義表述表中的一種或多種等。
所述csrf攻擊防護模塊用于對數(shù)據(jù)進行csrf攻擊防護檢測,所述csrf攻擊防護模塊對每個請求的參數(shù)中攜帶的token值進行校驗;所述token值為安全隨機數(shù);請求中加入token值的方法為:使用csrf請求屬性來獲取當前的csrftoken;或,使用springsecurity的jsp標簽庫中的csfrinput標簽;如果使用json,可以將token信息放到請求頭中。一種典型的模式是將csrftoken引入到源標簽中。可將所有的token引入到所有的ajax請求中。
所述參數(shù)校驗?zāi)K用于對接收的所有url的參數(shù)進行參數(shù)校驗;包含本安全系統(tǒng)的具體應(yīng)用編譯打包生成的app時,拷貝validate-common-config.xml文件到app的web-inf\validate目錄下,validate文件夾沒有的話新建。參數(shù)校驗web安全最重要的一道防御,嚴格的參數(shù)校驗?zāi)軌蚍乐钩R姷膕ql注入、os注入、目錄遍歷攻擊、跨站腳本攻擊等;參數(shù)校驗規(guī)則配置文件的命名規(guī)則為validate-rule_xxx.xml,只要以validate-rule開頭的xml文件就可以;該文件也需要放入app的web-inf\validate目錄下;編譯打包時拷貝validate-rule_xxx.xml文件到validate目錄,文件中定義app中固定的參數(shù)校驗規(guī)則,動態(tài)的參數(shù)校驗采用另外的方案實現(xiàn)(后文中會描述)。應(yīng)注意的是,該配置文件合入后,該app的接收所有url的參數(shù)都會進行參數(shù)校驗。
跨站腳本攻擊防護模塊用于接收到數(shù)據(jù)進行跨站腳本攻擊防護;跨站腳本攻擊防護模塊封裝了一個防xss攻擊的工具組件,它實現(xiàn)了常見的防xss攻擊的轉(zhuǎn)義方法;防xss攻擊轉(zhuǎn)義類型有三種:html進行轉(zhuǎn)義、htmlattribute進行轉(zhuǎn)義、javascript進行轉(zhuǎn)義。
登錄校驗?zāi)K用于對登錄用戶的權(quán)限進行檢測;app安裝完成后,基于安裝時注冊到交互式數(shù)據(jù)系統(tǒng)的url資源定義信息,系統(tǒng)管理員可登錄交互式數(shù)據(jù)系統(tǒng)為app向其他角色授權(quán);具有app訪問權(quán)限的角色登錄成功后,便可使用其權(quán)限范圍內(nèi)的功能;交互式數(shù)據(jù)系統(tǒng)的登錄及安全控制,統(tǒng)一由交互式數(shù)據(jù)系統(tǒng)的安全模塊提供服務(wù);安全模塊的登錄服務(wù)中,實現(xiàn)了“登錄認證防暴力破解”、“認證管理”、“登錄口令保護”、“會話管理”等功能;平臺的授權(quán)用戶接口包括單點安全登錄模式及單系統(tǒng)安全登錄模式兩種接口方式,同時,本安全系統(tǒng)為用戶角色配置可訪問資源的功能頁面,具有系統(tǒng)管理員級別的用戶登錄后,可在該功能模塊給其他低級別用戶角色賦權(quán);具體的,登錄時,驗證登錄用戶是否是系統(tǒng)中的用戶,無效用戶則提示身份無效,停留在登錄頁面;有效用戶則驗證密碼是否正確,正確則為用戶生成單點登錄憑證;權(quán)限過濾組件判定當前登錄用戶身份,最終呈現(xiàn)他可訪問的資源;用戶登錄后,在系統(tǒng)內(nèi)的所有操作發(fā)起的請求,根據(jù)具體情況會經(jīng)過web安全框架的安全組件對請求進行驗證。
sql注入防護模塊用于防止sql注入攻擊,所述sql注入防護模塊使用preparedstatement防范sql注入攻擊,或,使用spring提供的namedparameterjdbctemplate類執(zhí)行sql防范sql注入攻擊。
xml實體注入攻擊防護模塊用于防止xml實體注入攻擊,所述xml實體注入攻擊防護模塊通過解析http/https請求中xml結(jié)構(gòu)參數(shù)防止xml實體注入、解析靜態(tài)xml配置文件防止xml實體注入或解析excel防止xml實體注入。
所述隱私保護模塊,所述隱私保護模塊用于根據(jù)用戶的設(shè)置,對指定的參數(shù)進行全部隱藏顯示或部分隱藏顯示。交互式數(shù)據(jù)系統(tǒng)新建角色時默認是需要對用戶標識(個人數(shù)據(jù)標識)屏蔽的,如果該角色對于用戶標識是屏蔽的,該角色下的用戶登錄平臺時看到的個人數(shù)據(jù)應(yīng)該是屏蔽(匿名化)的。隱私保護模塊分為個人數(shù)據(jù)隱私保護和日志中個人數(shù)據(jù)匿名化;針對個人數(shù)據(jù)時:針對常見的涉及用戶隱私個人數(shù)據(jù)參數(shù),app界面呈現(xiàn)時需要做匿名化處理。比如msisdn(電話號碼)18912345678,如果末尾屏蔽4位,界面將呈現(xiàn)匿名化后的結(jié)果18912345****。對于匿名化的數(shù)據(jù),需要調(diào)用平臺工具組件的方法做進行匿名化。編排app時,設(shè)置那些數(shù)據(jù)需進行匿名化;app運行時,動態(tài)解析匿名化配置信息,調(diào)用隱私保護模塊完成匿名化處理。針對操作日志中個人數(shù)據(jù)匿名化操作,與web界面不同,操作日志中個人數(shù)據(jù)匿名化開關(guān)在setting->安全管理->個人數(shù)據(jù)匿名化配置界面。
所述防護模塊包括個性化設(shè)置模塊,所述個性化設(shè)置模塊用于用戶設(shè)置交互式數(shù)據(jù)系統(tǒng)中參數(shù)的必填項和/或參數(shù)的類型、取值范圍具體的,數(shù)據(jù)可視化平臺的ui設(shè)計器編排頁面時,可根據(jù)app應(yīng)用的個性化安全需求,配置參數(shù)校驗規(guī)則。例如,編排人員可為app頁面中某個控件(如文本框)設(shè)置必填、合法的身份證號、ip、email地址、長度限制、值范圍等常見的檢驗規(guī)則,這些規(guī)則以選項形式選擇。超出常見部分,編排人員可自定義正則表達式完成業(yè)務(wù)需求;用于也可以為一個控件指定多個參數(shù)校驗規(guī)則,比如某參數(shù)既需必填輸入值又必須在指定范圍內(nèi)。配置的安全規(guī)則在保存頁面時一并存在在頁面源文件內(nèi)。當app編譯發(fā)布時,分離出源文件中設(shè)置的安全規(guī)則信息,作為app運行時參數(shù)校驗的依據(jù)。
所述防護模塊包括運行日志保護模塊用于對交互式數(shù)據(jù)系統(tǒng)的所有操作記錄日志,并對日志的訪問進行控制,具體的操作如表一所示。
表一
所述防護模塊包括運行動態(tài)處理模塊,所述運行動態(tài)處理模塊用于協(xié)調(diào)所述防護模塊中其他各個功能模塊的運行
本發(fā)明提供的安全系統(tǒng)通過配置引入模塊與具體app配置為一體,具體如圖4所示,采用web.xml配置引入:編譯打包生成的app,該配置文件不需要修改,直接拷貝到app的web-inf\目錄下即可;web.xml中包含安全的相關(guān)配置:配置單點登錄/退出、數(shù)據(jù)可視化平臺自定義的日志組件、安全請求前綴校驗組件、處理各模塊間session對應(yīng)關(guān)系組件、判斷應(yīng)用的url是否已經(jīng)注冊的組件、攔截請求的組件等等;其中,配置單點登錄/退出由cas單點退出過濾器完成,系統(tǒng)中所有請求都會經(jīng)過這個過濾器處理,它主要完成當前登錄用戶的請求會話是否有效,若無效就取消登錄憑證,并自動調(diào)轉(zhuǎn)到登錄頁面;數(shù)據(jù)可視化平臺自定義的日志組件用于記錄日志,根據(jù)日志文件大小和生成時長等閾值設(shè)置來壓縮備份日志文件;安全請求前綴校驗組件為請求前綴校驗過濾器,其用于調(diào)用系統(tǒng)接口的請求,需驗證發(fā)起請求的用戶身份憑證;處理各模塊間session對應(yīng)關(guān)系組件用于驗證請求是從哪個頁面鏈接過來的,系統(tǒng)中所有請求都會經(jīng)過這個過濾器處理,它驗證請求是否從信任的頁面鏈接發(fā)起的;判斷應(yīng)用的url是否已經(jīng)注冊的組件為url是否在系統(tǒng)已經(jīng)配置的驗證過濾器,系統(tǒng)中所有請求都會經(jīng)過這個過濾器處理,它驗證請求的url是否是系統(tǒng)中的鑒權(quán)資源(app安裝時,將它的url注冊到系統(tǒng)中);如果是鑒權(quán)資源則放行,否則結(jié)束請求。
spring-security.xml配置文件引入:編譯打包時會將該文件copy到app的web-inf\conf目錄下即可;主要配置包括:安全工具組件、注冊并配置防csrf攻擊組件、注冊并配置dos攻擊組件、注冊并配置參數(shù)校驗組件、注冊并配置cookie過濾器、注冊并配置請求頭校驗組件、注冊并配置文件上傳驗證組件、注冊并配置用戶認證的入口、注冊并配置系統(tǒng)訪問url資源驗證組件、注冊并配置系統(tǒng)對外接口驗證組件、注冊并配置集成ssocas組件等等;注冊配置的這些組件,在app運行時完成安全過濾作用。例如,當用戶上傳文件時,根據(jù)app編排的個性化安全配置信息(如允許上傳的文件類型、文件大小等),使用上傳驗證組件完成校驗。校驗通過,繼續(xù)執(zhí)行后續(xù)業(yè)務(wù)邏輯;校驗失敗,結(jié)束請求并提示用戶。
參數(shù)校驗組件:先驗證請求url是否是白名單,若是就不做參數(shù)校驗,若不是就要做參數(shù)校驗;根據(jù)url找到請求參數(shù)校驗配置信息,對各個參數(shù)進行驗證;驗證不通過則結(jié)束請求;白名單和參數(shù)校驗配置信息分別在web-inf\validate\validate-common-config.xml、web-inf\validate\validate-rule-app.xml配置文件中,配置文件由spring框架加載;參數(shù)校驗規(guī)則配置成正則表達式,驗證時將參數(shù)值與正則表達式匹配,若能匹配表示驗證通過,否則驗證不通過。
防csrf攻擊組件:驗證系統(tǒng)中所有請求,首先查詢當前請求url是否在系統(tǒng)中的鑒權(quán)資源url庫中存在,若存在則放行;若不存在,需驗證當前請求url是否設(shè)置成了系統(tǒng)防csrf攻擊白名單,是白名單則放行,不是則結(jié)束請求。
防csrf攻擊白名單配置在web-inf\conf\spring-security.xml配置文件中,配置文件由spring框架加載。
防doc攻擊組件:驗證系統(tǒng)中所有請求在時間周期內(nèi)的發(fā)起次數(shù)是否超過攻擊次數(shù)閾值,未超過則繼續(xù)放行;超過了則結(jié)束每個請求,直到訪問頻率恢復(fù)正常。從而防止惡意攻擊。
時間周期和攻擊次數(shù)閾值配置在web-inf\conf\spring-security.xml配置文件中(該配置文件名稱和路徑僅為舉例,任何指定路徑和配置文件名稱均可實現(xiàn)相應(yīng)功能,因此本示例不代表任何限定),配置文件由spring框架加載。
cookie安全處理組件:系統(tǒng)檢測當前請求是否是cookie安全白名單,如果是白名單則不作處理;如果不是白名單,則設(shè)置響應(yīng)的cookie為安全cookie:設(shè)置secure和httponly屬性為true;secure為true,表示cookie會被以安全的形式向服務(wù)器傳輸,也就是只能在https連接中被瀏覽器傳遞到服務(wù)器端進行會話驗證,如果是http連接則不會傳遞該信息,所以不會被竊取到cookie的具體內(nèi)容。httponly為true,那么通過程序(js腳本、applet等)將無法讀取到cookie信息,這樣能有效的防止xss攻擊。
權(quán)限過濾組件:將所有的資源和權(quán)限對應(yīng)關(guān)系建立起來,即定義某一資源可以被哪些角色訪問。等用戶登錄系統(tǒng)時,決定當前用戶具有的角色,是否有足夠的權(quán)限去訪問某些資源;最終呈現(xiàn)他可訪問的資源。用戶進入系統(tǒng)后,發(fā)起的所有請求也要經(jīng)過該組件,決定當前用戶是否發(fā)起了超過其權(quán)限的請求。
具體運作時,如圖2所示,app的使用者向app頁面(交互式數(shù)據(jù)系統(tǒng)的人機交互輸入)輸入請求,app頁面將該請求通過數(shù)據(jù)輸入接口發(fā)送至防護模塊,防護模塊中的各個模塊按照指定順序依次對請求數(shù)據(jù)進行安全檢測,圖2中給出了各個模塊進行檢測的示例,如url是否授權(quán)檢測,請求是否具有攻擊性檢測,參數(shù)檢驗檢測,......,直至完成所有檢測后,將檢測通過結(jié)果以及數(shù)據(jù)通過數(shù)據(jù)輸出接口返給app具體執(zhí)行引擎(交互式數(shù)據(jù)系統(tǒng)的數(shù)據(jù)處理模塊);引擎將響應(yīng)結(jié)果反饋至頁面;在一些情況下,反饋結(jié)果需對是否跨站腳本攻擊進行處理,此時,頁面將跨站腳本攻待檢測數(shù)據(jù)通過數(shù)據(jù)輸入接口發(fā)送至防護模塊進行檢測,通過檢測后在頁面顯示。應(yīng)注意的是,在防護模塊的檢測過程中,任何一項檢測沒有通過,則該請求或者數(shù)據(jù)不會被傳遞至app具體執(zhí)行引擎(交互式數(shù)據(jù)系統(tǒng)的數(shù)據(jù)處理模塊),從而防止app的具體核心處理模塊被攻擊。
另一具體示例中,用戶操作發(fā)起請求后,按照如下步驟進行處理(1)進入cas單點退出過濾器。如果是退出系統(tǒng)的請求,則取消登錄憑證,并自動調(diào)轉(zhuǎn)到登錄頁面;(2)進入請求前綴校驗過濾器。如果是調(diào)用系統(tǒng)接口請求,則驗證請求的用戶身份憑證是否合法;(3)進入從哪個頁面鏈接過來的驗證過濾器,保障請求是否從信任的頁面鏈接發(fā)起的;(4)進入url是否在系統(tǒng)已經(jīng)配置的驗證過濾器,保障請求的是合法資源;(5)進入?yún)?shù)校驗組件,保障請求參數(shù)合法有效;(6)進入防csrf攻擊組件;(7)進入防doc攻擊組件;(8)進入權(quán)限過濾組件;(9)如果編排時配置了個性化/隱私保護的安全能力,則進入個性化/隱私保護安全組件;(10)實際業(yè)務(wù)處理過程(例如數(shù)據(jù)查詢或api接口調(diào)用等);在此處理過程中,調(diào)用日志組件,記錄操作日志和運行日志;(11)完成業(yè)務(wù)處理后,進入cookie安全處理組件;(12)最終響應(yīng)用戶請求。
圖3則給出了個性化安全需求的動態(tài)解析及校驗處理流程;app的使用者向頁面發(fā)出請求;安全模塊接收頁面?zhèn)鬏數(shù)男畔?,并對其進行安全檢查;如果通過檢查則由app執(zhí)行引擎處理尋找請求與安全配置信息間的關(guān)聯(lián)性;將對應(yīng)的安全配置信息發(fā)送至存儲介質(zhì);由app執(zhí)行引擎解析安全處理類型;動態(tài)執(zhí)行安全檢查;通過驗證后,調(diào)用ui運行期執(zhí)行業(yè)務(wù);返回響應(yīng)結(jié)果并在頁面顯示。