Ⅰ 輸入參數過濾可以預防以下哪些攻擊
輸入參數過濾可以預防以下哪些攻擊()
A.SQL注入、跨站腳本、緩沖區溢出
B.SQL注入、跨站腳本、DNS毒葯
C.SQL注入、跨站請求偽造、網路竊聽
D.跨站請求偽造、跨站腳本、DNS毒葯
答案:B
Ⅱ 如何使用filter過濾器對入參進行處理(完整版)
前台把參數通過報文或者使用表單、ajax提交到後台,如果我們的請求參數是加密的,那麼我們在controller裡面的每一個方法里都需要進行解密處理。如果方法太多,那就太麻煩了。
使用過濾器,在一個Filter中將 HttpServletRequest 里的所有參數都取出來分別進行過濾然後再放回到該HttpServletRequest 中行不行呢?
通過測試後發現是不行的,因為HttpServletRequest 只提供了getParameter ,而沒有提供setParameter;所以,我們只能自己寫一個HttpServletRequest 方法繼承HttpServletRequestWrapper,然後覆蓋裡面的方法,並且增加我們自己的setParameters方法,這樣我們就可以為所欲為了,最後再在filter中調用該類的方法對參數進行處理(獲取、修改、存儲等等)。
在請求參數到達controller之前,在filter裡面進行解密;這樣,通過簡單的過濾器處理,把需要處理的請求都在過濾器里進行解密操作,這樣就等於實現了自動化處理。
這里我們針對兩種不同的請求方式進行講解:
第一步:新建一個類別
這個類繼承自HttpServletRequestWrapper
通過建立這個類我們就能完成向request對象添加我們處理之後的參數了。
第二步:通過實現filter介面建一個過濾器
第三步:過濾器的配置
方法一、在web.xml文件裡面進行簡單的配置(一般項目)
把我們的過濾器放在該文件中注冊
方法二、springboot項目的配置
新建一個配置類,加上@Configuration註解,在方法頭加上@Bean註解
controller 接收參數代碼:
請求示例代碼:
處理結果:
從結果可以看出,我們成功地通過過濾器對請求的email進行大寫轉小寫處理
第一步:新建一個類別
這個類繼承自HttpServletRequestWrapper
通過建立這個類我們就能完成向request對象添加我們處理之後的參數了。
第二步:通過實現filter介面建一個過濾器
第三步:
方法一、在web.xml文件裡面進行簡單的配置
把我們的過濾器放在該文件中注冊
方法二、springboot項目的配置
新建一個配置類,加上@Configuration註解,在方法頭加上@Bean註解
controller 接收參數代碼:
請求報文示例:
我這里使用的是postman工具進行json參數請求
返回結果:
通過該過濾器,把email轉換從小寫成功。
通過以上操作,我們就成功的創建了一個過濾器。