更多python、Linux、网络安全学习内容,可移步:www.oldboyedu.com或关注\"老男孩Linux\"公众号
分类: 网络与安全
2022-04-01 15:10:34
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的内容。