xss就是跨站脚本攻击,造成这种漏洞存在的根本原因是开发者的安全意识不够而留下的漏洞,使得用户可以直接在页面提交代码,并且执行,从而获取到用户权限,cookie等危害,xss攻击一般危害的是网站的用户,而不是网站,xss的危害性在所有web漏洞威胁性排名第二,仅次于sql注入,68%的网站可能存在xss攻击。xss攻击常常发生在输入框里,通常是让用户填写的,例如留言板、个性签名、个人介绍等输入框,或者是搜索框,只要有输入框存在,就可能存在xss漏洞,例如最常见的弹窗代码<script>alert('test');</script>,如果能执行那就很明显存在xss漏洞,进一步进行攻击,我们今天讲的不是攻击,而是防御,xss各种攻击手段可以看我们的xss课程,知道攻击是如何发生的,才能更好的防御。
为什么我们上面发的<script>alert('test');</script>,是显示出来而不是在后台执行呢?因为我们对提交的代码进行了转义,例如<,转义后就是<,在前端不仅能把代码显示出来,并且也不会执行,也就是说攻击者如果提交了<script>alert('test');</script>,经过转义后会变成:<script>alert('test');</script>,看起来很乱,实际上只会对特殊字符进行转义,而转义后的就是很普通的文本,没有攻击能力,从而阻止了js攻击。
对于用户提交的内容,要进行过滤后再显示,可以设置对“<”,“>”,“;”,“””,等进行过滤,当带有这些字符时直接拒绝提交。在提交方式上要选择post提交方式,get会直接在浏览器地址上显示内容,不安全。
1、盗取cookie,从而登录其他用户账号,导致账号泄露。2、利用iframe、frame欺骗用户进行操作,甚至能导致网银被盗。3、访问页面大的xss漏洞,可以用特殊的代码,让用户帮助你ddos攻击其他网站。