Soul的匹配策略和waf執行流程


Soul的匹配策略和waf執行流程

soul的匹配策略

通過前面幾節的分析我們可以看到,幾乎所有的插件都有匹配的規則執行的順序,而我們通過插件分析了解到,具體的規則匹配是在soul-plugin-base中實現的
在AbstractSoulPlugin文件中我們可以看到,具體的篩選規則的要求被封裝在了MatchStrategyUtils.match方法中,通過規則要求條件數量來獲取到匹配的規則
file
在具體操作時,我們可以看到匹配規則,由Soul內部的SPI自己實現了規則的加載
file

最后我們可以看到AndMatchStrategy和OrMatchStrategy具體實現了規則的匹配
file

最后通過策略模式和具體的模式操作相關的代碼實現了匹配的策略
file
file
例如Match條件的匹配
file

waf的執行流程

首先在設置界面可以設置兩種不同的模式
file

  • 當 model 設置為 black 模式的時候,只有匹配的流量才會執行拒絕策略,不匹配的,直接會跳過。
  • 當 model 設置為 mixed 模式的時候,所有的流量都會通過 waf插件,針對不同的匹配流量,用戶可以設置是拒絕,還是通過。

另外從waf的配置界面可以看到waf的配置非常簡單,即是就是對上述匹配規則對應的請求到底是拒絕還是通過。這個還是很好理解的
file
另外可以看到,waf中同時設置了請求的響應碼和我們自定義的響應碼。
file
這樣,可以清晰明了的對外部的請求做攔截或通過處理。用來實現對流量實現防火牆的核心功能:攔截非法請求、異常請求、拒絕策略。

從如上可以看到soul的流量攔截(防火牆)的實現很簡單清晰明了。而且綜合運用了SPI和策略模式等,

歡迎搜索關注本人與朋友共同開發的微信面經小程序【大廠面試助手】和公眾號【微瞰技術】,以及總結的分類面試題https://github.com/zhendiao/JavaInterview

file
file


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM