详解springsecurity安全防护-创新互联
前言
创新互联建站2013年开创至今,是专业互联网技术服务公司,拥有项目成都做网站、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元石棉做网站,已为上家服务,为石棉各地企业和个人服务,联系电话:028-86922220xss攻击(跨站脚本攻击):攻击者在页面里插入恶意脚本代码,用户浏览该页面时,脚本代码就会执行,达到攻击者的目的。原理就是:攻击者对含有漏洞的服务器注入恶意代码,引诱用户浏览受到攻击的服务器,并打开相关页面,执行恶意代码。
xss攻击方式:一、反射性攻击,脚本代码作为url参数提交给服务器,服务器解析执行后,将脚本代码返回给浏览器,最后浏览器解析执行攻击代码;二、存储性攻击,和发射性攻击的区别是,脚本代码存储在服务器,下次在请求时,不用再提交脚本代码。其中一个示例图如下所示:
CSRF攻击:跨站请求伪造攻击,CSRF是一种欺骗受害者提交恶意请求的攻击,并劫持受害者的身份和特权,并以受害者的身份访问未授权的信息和功能。序列图如下所示:
同步器Token
解决XSS攻击和CSRF攻击的一个推荐方法就是同步器Token,就是在post的请求中,增加一个token,每次请求到来,服务器都会验证请求中的token和服务器期望的值是否一致,如果不一致,服务器将请求视为非法的,整个过程的示例图如下所示:
在spring security中如果使用的是 @EnableWebMvcSecurity而不是@EnableWebSecurity,同步器Token是默认打开的,通过http().csrf().disable()可以关闭同步器token功能。spring security发现token无效后,会返回一个403的访问拒绝,不过可以通过配置AccessDeniedHandler类处理InvalidCsrfTokenException异常来定制行为。
spring security虽然默认是打开同步器token保护的,但是也提供了一个显示打开的行为即http().csrf(),同时需要在html的form表单中添加以“”
如果请求的是json或ajax请求,如何使用同步器token防护那?
json请求的话,我们可以在header的元数据中添加token防护,代码如下所示:
...
网站标题:详解springsecurity安全防护-创新互联
文章链接:http://scyanting.com/article/cdcsss.html