Filter和Servlet的總結
對于基于Filter和Servlet實現的簡單架構項目,代碼審計的重心集中于找出所有的Filter分析其過濾規則,找出是否有做全局的安全過濾、敏感的URL地址是否有做權限校驗并嘗試繞過Filter過濾。第二點則是找出所有的Servlet,分析Servlet的業務是否存在安全問題,如果存在安全問題是否可以利用?是否有權限訪問?利用時是否被Filter過濾等問題,切勿看到Servlet、JSP中的漏洞點就妄下定論,不要忘了Servlet前面很有可能存在一個全局安全過濾的Filter。
Filter和Servlet都是Java Web提供的API,簡單的總結了下有如下共同點。
Filter和Servlet都需要在web.xml或注解(@WebFilter、@WebServlet)中配置,而且配置方式是非常的相似的。Filter和Servlet都可以處理來自Http請求的請求,兩者都有request、response對象。Filter和Servlet基礎概念不一樣,Servlet定義是容器端小程序,用于直接處理后端業務邏輯,而Filter的思想則是實現對Java Web請求資源的攔截過濾。Filter和Servlet雖然概念上不太一樣,但都可以處理Http請求,都可以用來實現MVC控制器(Struts2和Spring框架分別基于Filter和Servlet技術實現的)。- 一般來說
Filter通常配置在MVC、Servlet和JSP請求前面,常用于后端權限控制、統一的Http請求參數過濾(統一的XSS、SQL注入、Struts2命令執行等攻擊檢測處理)處理,其核心主要體現在請求過濾上,而Servlet更多的是用來處理后端業務請求上。
Java Web安全
推薦文章: