xss是指跨站脚本攻击。就是指将脚本(不限于script)注入到该网站中,从而达到自己的目的。
例如向输入框中输入<script>alert("hello");</script>这样将script注入进去。
所有有输入的地方,如果没有对输入数据进行处理,都会存在xss漏洞。
基于dom的xss攻击,比如获取别人的cookie信息。所以还是不要点开奇奇怪怪的网站和链接的好。
将script脚本写在链接里,从而获取你的信息。
存储式xss攻击将脚本存入数据库或服务器中,例如向数据库中存入一篇文章,在文章中加上脚本,这个时候别人读这篇文章时,就通过脚本来获取别人的信息,例如cookie。
攻击者发现XSS漏洞——构造代码——发送给受害人——受害人打开——攻击者获取受害人的cookie——完成攻击
xss防御
还是跟sql注入一样想,不要相信用户的输入,要对用户的输入进行处理,允许合法的部分,过滤危险的部分。
有的时候也不能都过滤掉,这个时候我们就要考虑采用转义符来对一些危险的字符进行转化。、
但是有的时候有过滤script标签,对方依旧可以通过各种标签来实现运行自己的script脚本代码。
html5有一套浏览器xss解决方案(csp),主流浏览器都执行这个标准。