基于复杂方案OWSAP CsrfGuard的CSRF安全解决方案(适配nginx + DWR)
2019独角兽企业重金招聘Python工程师标准>>>
1、什么是CSRF?
已经有很多博文讲解其过程和攻击手段,在此就不重复了。 O(∩_∩)O 不清楚的同学,请自行搜索或按链接去了解: http://blog.csdn.net/Flaght/article/details/3873590
2、CSRFGuard_Project
开源项目 CSRFGuard,介绍了如何使用在 HTTP 请求中加入 token 并验证的方法来抵御 CSRF。 https://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project
3、检测CSRF方法?
OWASP上面有一个叫做CSRFTester的工具,可以构建进行测试。
下载链接:https://www.owasp.org/index.php/CSRFTester
教程指引:http://www.zyiqibook.com/article216.html
4、如何防御CSRF?
我们采用CSRFGuard_Project方案 JAVA DOM方式。
配置如下:
1)引入csrfguard-3.1.0.jar到你的工程: 2)配置web.xml:
<!-- 基于复杂方案OWASP CsrfGuard的CSRF安全过滤 --><servlet><servlet-name>JavaScriptServlet</servlet-name><servlet-class>org.owasp.csrfguard.servlet.JavaScriptServlet</servlet-class></servlet><servlet-mapping><servlet-name>JavaScriptServlet</servlet-name><url-pattern>/JavaScriptServlet</url-pattern></servlet-mapping><context-param><param-name>Owasp.CsrfGuard.Config</param-name><param-value>WEB-INF/csrfguard.properties</param-value><!-- 配置文件 --></context-param><context-param><param-name>Owasp.CsrfGuard.Config.Print</param-name><param-value>true</param-value></context-param><!-- session监听器 --><!-- 基于复杂方案CsrfGuard的session监听器 --><listener><listener-class>org.owasp.csrfguard.CsrfGuardHttpSessionListener</listener-class></listener><listener><listener-class>org.owasp.csrfguard.CsrfGuardServletContextListener</listener-class></listener><filter><filter-name>CSRFGuard</filter-name><filter-class>org.owasp.csrfguard.CsrfGuardFilter</filter-class></filter><filter-mapping><filter-name>CSRFGuard</filter-name><url-pattern>/*</url-pattern></filter-mapping>
3)引入配置文件csrfguard.js csrfguard.properties(jar包META-INF里面有) csrfguard.properties配置文件中有几点需要注意:
可以指定加载的js,为方便管理,我放在WEB-INF目录下:
org.owasp.csrfguard.JavascriptServlet.sourceFile = WEB-INF/csrfguard.js
org.owasp.csrfguard.TokenName 对于nginx分发多servers的情况,nginx默认过滤带下划线的header,要么改掉nginx的配置,要么改这个参数的值。:fa-paper-plane: 参考:http://www.ttlsa.com/nginx/nginx-proxy_set_header
#>>>>>>>>>>>>>--author by caizhengluan e-mail: SvenAugustus@outlook.com
#Nginx ignores the underlined header variables by default.
# Please do not set "TokenName" has any underlines if you can't unkonwn how to change nginx's configuration.
org.owasp.csrfguard.TokenName=PAYCSRFTOKEN
#<<<<<<<<<<<<<--author by caizhengluan e-mail: SvenAugustus@outlook.com
org.owasp.csrfguard.JavascriptServlet.refererMatchDomain 对于nginx分发多servers的情况,需要设置为false
#>>>>>>>>>>>>>--author by caizhengluan e-mail: SvenAugustus@outlook.com
# If you have cluster and nginx, please set this value to false.Otherwise, you will can't visit into the servers when you access nginx address.
org.owasp.csrfguard.JavascriptServlet.refererMatchDomain = false
#<<<<<<<<<<<<<--author by caizhengluan e-mail: SvenAugustus@outlook.com
4、如何具体防御DWR和我们的页面? 在你的页面最后加上这么一句:
<!-- OWASP CSRFGuard JavaScript Support -->
<script src="<%=request.getContextPath()%>/JavaScriptServlet"></script>
如此,完美解决。--author by caizhengluan e-mail: SvenAugustus@outlook.com 如有转载,请标明转载,并附上原始链接,谢谢。
转载于:https://my.oschina.net/langxSpirit/blog/678901
基于复杂方案OWSAP CsrfGuard的CSRF安全解决方案(适配nginx + DWR)相关推荐
- 基于物联网方案的环保工况用电解决方案
基于物联网方案的环保工况用电解决方案 工业4.0时代,也就是物联网时代,无论是在企业发展中还是在日常生活中,物联网以其前所未有的智慧性.高效性.便捷性成为时代发展大势所趋,各行各业市场潜力巨大.作为一 ...
- 给你一个全自动的屏幕适配方案(基于SW方案)二 —— Calces.Screen插件拓展功能升级...
如果不了解Calces.screen插件的用法或者想深入了解sw( Smallest Width) 屏幕适配方案的话,可以阅读上一篇文章: 给你一个全自动的屏幕适配方案(基于SW方案)!-- 解放你和 ...
- 大功率双伺服电机驱动板,包含原理图,PCB和原代码,基于STM32F4方案,支持霍尔,编码器,无感
大功率双伺服电机驱动板,包含原理图,PCB和原代码,基于STM32F4方案,支持霍尔,编码器,无感. 需要有一定的基础,无基勿扰. :9450639029711075枫叶蓝.
- 基于BB方案,荣耀观影眼镜Vision Glass正式发布
3月6日青亭网报道,在荣耀Magic5系列及全场景新品发布会上,荣耀发布了一款基于BirdBath方案的观影眼镜:HONOR Vision Glass. 这款眼镜外观上和Nreal Air非常一致,就 ...
- 【VMware vSAN 6.6】5.1.基于存储策略的管理:vSAN硬件服务器解决方案
目录 1. 简介 1.1.适用于HCI的企业级存储 2. 体系结构 2.1.带有本地存储的服务器2.2.存储控制器虚拟系统套装的缺点 2.3.vSAN在vSphere Hypervisor中自带 2. ...
- 基于TableStore的海量气象格点数据解决方案实战
前言 气象数据是一类典型的大数据,具有数据量大.时效性高.数据种类丰富等特点.气象数据中大量的数据是时空数据,记录了时间和空间范围内各个点的各个物理量的观测量或者模拟量,每天产生的数据量常在几十TB到 ...
- 解决方案:Nginx高可用方案
解决方案:Nginx高可用方案 关键词 KeepAlived(主服务器 和 备份服务器 故障时 IP 瞬间无缝交接) VRRP协议(路由器组,提供虚拟IP,一个master和多个backup,组播消息 ...
- 基于云平台服务器的数据处理方法及系统,基于云平台的有毒有害气体监测系统解决方案...
原标题:基于云平台的有毒有害气体监测系统解决方案 一.方案背景 有毒有害气体检测仪是常用于检测有毒有害气体泄露的方法,但是,现有的气体检测仪存在诸多问题,如:品牌众多.良莠不齐.安装地点相对分散等问题 ...
- RFC7814基于BGP/MPLS IP VRF的子网扩展解决方案
基于BGP/MPLS IP VRF的子网扩展解决方案 ---学习笔记 1引言 2术语 3方案描述 3.1单播 3.1.1子网内单播 3.1.2子网间单播 3.2组播 3.3主机发现 3.4ARP/ND ...
最新文章
- Flash Builder 找不到所需的Adobe Flash Player调试器版本的解决办法
- 物联网入门怎么学?物联网基础知识
- 大厂程序员跳槽去小公司当CTO,是一种怎样的体验?
- java 不写this_JAVAthis使用的那些事儿
- dataTable表头未对其解决方法
- as2 AVM1对象和as3对象的通信
- 才27岁,北大博士不幸离世
- 计算的未来30年:2050大会分享实录
- 编码的奥秘:电筒密谈
- JCR分区和中科院分区的区别
- pp助手苹果版_吃药提醒助手ios版下载-吃药提醒助手苹果版下载v1.0
- 计算机软件吸附效应,流体混合物吸附分离的分子模拟研究
- bartender各个版本下载链接(10.1\2016\2019)
- Substance Painter 创建头发实验
- UIPATH 调用SAP BAPI
- Android使用svg格式图片,并改变图片颜色
- Python出租车GPS数据的路网匹配(TransBigData+leuvenmapmatching)
- 无线路由器桥接(以不同品牌为例tplink和fast)
- 用maven驱动搜索dom4j异常,原因分析
- 【车流量预测论文】(2020)GMAN: A Graph Multi-Attention Network for Traffic Prediction-20201213