csrf攻击 xss区别及防御,xsscsrf攻击防范

  csrf攻击 xss区别及防御,xsscsrf攻击防范

  1理解CSRF的定义

  CSRF(跨站请求伪造)跨站请求伪造,也称为“一键攻击”或会话骑行,通常缩写为CSRF或XSRF,是对网站的恶意利用。虽然听起来像跨站点脚本(XSS),但它与XSS非常不同。XSS在网站中利用可信用户,而CSRF通过伪装可信用户的请求来利用可信网站。与XSS攻击相比,CSRF攻击通常不太受欢迎(因此预防它的资源很少)且难以预防,因此被认为比XSS更危险。

  攻击通过在授权用户访问的页面中包含链接或脚本来进行。例如,一个网站用户Bob可能正在浏览一个聊天论坛,而另一个用户Alice也在这个论坛中,后者刚刚发布了一条带有Bob的银行链接的图片消息。想象一下,Alice写了一个通过form提交的链接,用来在Bob的银行网站上取款,并将这个链接作为图片src。如果Bob的银行将他的授权信息存储在cookie中,并且这个cookie没有过期,那么Bob的浏览器在试图加载图片时将提交这个取款单和他的cookie,从而在没有Bob同意的情况下授权这个交易。

  2如何解决csrf在项目中的攻击

  让我们以用户登录代码为例:

  2.1首先在项目中引入CSRFTokenManager.java,主要生成一段csrftoken session的代码。

  2.2在用户进入项目并跳转到登录页面之前,我们通过csrfTokenManager代码生成一个令牌,然后将其传入登录页面并定义为CSRF。

  2.3在登录页面中,通过隐藏域的方式获取刚刚通过的csrf,这样当用户提交表单form时,这里的csrf会一起提交到后台代码。

  2.4在后台代码中,我们将页面传入的令牌与生成的令牌会话进行比较。如果两者相同,那么这些操作就被认为是用户自己的操作。如果页面传入的令牌与生成的令牌不同,那么其他人已经通过模拟用户完成了这个操作。然后我们要处理它,让它跳转到登录页面。

  3理解XSS的定义

  跨站脚本不会与层叠样式表(CSS)的缩写混淆,所以它被缩写为XSS。恶意攻击者将恶意脚本代码插入到网页中,当用户浏览网页时,嵌入在网页中的脚本代码就会被执行,从而达到对用户进行恶意攻击的目的。XSS攻击可以分为两类,一类是内部攻击,主要是指利用程序自身的漏洞构造跨站语句,比如dvbbs的showerror.asp中的跨站漏洞。另一类是外部攻击,主要指构建XSS跨站漏洞网页或者寻找非目标机器以外的跨站漏洞网页。比如我们要渗透一个站点,就构造一个有跨站漏洞的网页,然后结合其他技术,比如社会工程,构造一个跨站语句,欺骗目标服务器的管理员打开。

  4如何解决项目中的XSS攻击

  4.1首先项目导入到XSSStringEncoder.java,主要是对传入字符串的特殊字符进行代码转换,比如html)(“”%;amp,这些特殊字符很可能是注入的代码。

  4.2在这里调用encodeXSSString对每个代码传入的字符串进行转码,然后返回转码后的字符串。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: