本文目录一览:
DOM-based XSS 与 存储性XSS,反射型XSS有什么区别
您好,我来为您解答:
XSS就是XSS。所谓“存储型”、“反射型”都是从黑客利用的角度区分的。对于程序员来说意义不大,反而是误导。只有“DOM-based”型略有不同。
XSS、SQL
injection之类的漏洞,原理都是破坏跨层协议的数据/指令的构造。
希望我的回答对你有帮助。
存储型XSS与反射型XSS有什么区别
XSS就是XSS。所谓“存储型”、“反射型”都是从黑客利用的角度区分的。对于程序员来说意义不大,反而是误导。只有“DOM-based”型略有不同。
XSS、SQL
injection之类的漏洞,原理都是破坏跨层协议的数据/指令的构造。
为什么要同源策略
一个重要原因就是保护cookie,cookie中存着用户的登陆凭证,就相当于用户的账号密码。
想象以下场景,你正吃着火锅唱着歌,突然收到一封邮件说你的银行账号存在安全隐患,点击修复。虽然银行的官方网站是,但是想到你的全部家当24块3毛都在卡里,慌乱的你没有注意这么多点击链接输入帐号密码进行登陆。这个网站其实是
iframe src=""
在你输入帐号密码的时候,如果没有同源策略,外部已经有脚本获取你的输入或者直接通过document.cookie窃取了你的信息并且发送给攻击者了。
那有了同源策略,是不是我们的网站就万无一失了呢。并不是,还有很多其他手段威胁到网站安全,比如xss,csrf,clickJacking,本篇文章就简单阐述一下他们的攻击手段和基础攻防(后续添加)。
xss
Cross Site Script,译为是跨站脚本攻击;其原本缩写是 CSS,但为了和层叠样式表(Cascading Style Sheet)有所区分,因而被迫改名为 XSS。主要分为反射型和储存型。
反射型
反射型的特点是不持久,它的特点是xss的代码出现在访问的链接里,作为一部分输入提交到服务器,然后服务器响应后返回浏览器,然后浏览器执行xss的代码。
一般攻击者通过邮件或者其他途径发送链接,用户点击之后达到攻击目的。
储存型
存储型和反射型的差别仅在于他的攻击代码会存储到服务器。这种攻击的最典型例子就是博客论坛的留言功能,访问包含这条留言的页面时,就会触发攻击代码。
比如某个论坛的个人中心里的个人简介,我们就可以在里面尝试注入代码进行练习,先来测试可用的标签
scriptapimgbodybuttonvardiviframemetaobjectmarqueeisindex inputselectkeygenframesetembedsvgmathvideoaudiotextarea
发现只有a标签存活下来,再来测试属性
a href onmouseover onclick
xss存在的主要原因在于没有对于用户的提交内容和接口的返回内容没有进行严格的过滤。
而防止xss的主要手段也是对输入和url参数进行过滤,对输出进行编码,还有就是cookie设置http-only。像常用的vue就有
const decodingMap = {
'': '',
'': '',
'"': '"',
'': '',
'
': '\n',
' ': '\t',
''': "'"
}
来对输入进行进行过滤,还有百度中输入scriptalert(1)/script也会被转译成scriptalert(1)%2Fscript。
至于http-only,严格来说没有阻止攻击,只是阻止了攻击后的cookie劫持。