關於跨站請求僞造(csrf)的一些常識和處理

關於介紹和處理請見博客:https://blog.csdn.net/liuyingan/article/details/84914917

 

以上都是理論說明這個東西   和理論上的處理方式 。。。完事呢,我就用驗證 HTTP Referer 字段  這個方法來貼一段代碼用來做防禦這個入侵(兩個類):

@Configuration
public  class WebAppConfig  extends WebMvcConfigurerAdapter {

            //註冊攔截器
            @Override
            public void addInterceptors(InterceptorRegistry registry) {
                // 註冊攔截器
                //靜態資源在springboot2.0以前已經做好映射,不用管                      /**指任意範圍都通過攔截
                registry.addInterceptor(new SessionInterceptor()).addPathPatterns("/**")
                        .excludePathPatterns(
                                "/css/**","/js/**","/fonts/**","/img/**","/docs/**","/druid/**","/upload/**","/files/**","/logfind","/login","/error/**")
                ;
                //.excludePathPatterns代表這些請求不過濾     asserts爲resources下static下的文件夾,webjars則是maven導入的一些前端框架
            }

}




@Component
public class SessionInterceptor extends HandlerInterceptorAdapter {


    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String referer = request.getHeader("Referer"); //下面這個鏈接寫你自己的項目的鏈接就好
        if(StrUtil.isNotBlank(referer)&&!referer.contains("127.0.0.1:8099")){
            response.sendRedirect("/error/500");
            return false;
        }
        HttpSession session = request.getSession();
        return true;
    }
}

完事呢,我比較懶,上面的代碼  也懶得解釋了   ,不知道這個是啥  請見 搜索springboot配置攔截器

有問題的   麻煩看下博客名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章