XSS攻击和CSRF攻击是网络安全领域比较常见的攻击方式,而且这两种攻击方式从名字上来看,同为跨站攻击:XSS攻击为跨站脚本攻击、CSRF攻击为跨站请求伪造,那么XSS攻击和CSRF攻击有什么区别?以下是详细的内容介绍。

  CSRF攻击基本概念及防范方法

  一、基本概念

CSRF,英文全称Cross-site request forgery,跨站请求伪造。也被称为“One Click Attack”或者“Session
Riding”,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。

  二、防范方法

  方法1:Token验证,用的比较多:①服务器发送给客户端一个token;②客户端提交的表单中带着这个token;③如果这个token不合法,那么服务器拒绝这个请求。

  方法2:隐藏令牌:将token隐藏在http的head头中,方法二和方法一有点像,本质上没有太大区别,只是使用方式上有区别。

  方法3:Referer验证:Referer指的是网页请求来源,意思是,只接受本站的请求,服务器才做响应;如果不是,就拦截。

  XSS攻击的基本概念及防范方法

  一、基本概念

XSS,全称Cross Site
Scripting,跨站脚本攻击。XSS攻击的核心原理是:不需要你做任何的登录认证,它会通过合法的操作,向你的页面注入脚本。

  最后导致的结果可能是:盗用cookie破坏页面的正常结构,插入广告等恶意内容D-doss攻击。

  二、防范方法

  方法1:编码:对用户的输入进行HTML Entity编码。

  方法2:过滤:移除用户输入的和事件相关的属性。如onerror可以自动触发攻击,还有onclick等。(总而言之,过滤掉一些不安全的内容)移除用户输入的style节点、script节点、Iframe节点。

  方法3:校正:避免直接对HTML Entity进行解码。使用DOM parse转换,校正不配对的DOM标签。

  DOM parse,这个概念,它的作用是把文本解析成DOM结构。

  比较常用的做法是,通过第一步的编码转成文本,然后第三步转成DOM对象,然后经过第二步的过滤。

  还有一种简洁的答案:首先是encode,如果是富文本,就白名单。

  XSS攻击和CSRF攻击有什么区别?

  区别一:CSRF需要用户先登录网站A,获取cookie,XSS不需要登录。

  区别二:CSRF是利用网站A本身的漏洞,去请求网站A的api,XSS是向网站A注入js代码,然后执行js里的代码,篡改网站A的内容。