原理
xss又叫css,跨站脚本攻击。
当web应用对用户输入过滤不严格时,攻击者会写入恶意的脚本代码(HTML,JavaScript)到网页中,如果用户访问了含有恶意代码的页面,恶意脚本就会被浏览器解析执行,用户就会遭受攻击
xss漏洞通常是通过php的输出函数将脚本代码输出到html页面中,通过 用户本地浏览器执行的。因此,xss漏洞关键是寻找参数为未过滤的输出函数
危害
cookie窃取,session劫持,钓鱼攻击,蠕虫,ddos等
分类
反射型(非持久型)
反射型xss一般出现在URL参数中及网站搜索栏中。
攻击者事先制作攻击链接,需要用户点击包含恶意代码的URL才可以触发(服务器中没有这样的页面和内容)
并且只能触发一次 。
一般容易出现在搜索页面中
存储型(持久型)
~~ 存储型xss一出现在网站留言板,评论处,个人资料处,等需要用户可以对网站写入数据的地方。
~~代码是存储在服务器中的(存储在数据库或某种介质里)
~~比如在个人信息或文章发表的地方,加入代码,如果没有过滤或过滤不严,这些代码将存到服务器中,当其他用户访问此页面时,都会触发代码执行
DOM型
~~也通过get传参
~· DOM xss是基于dom文档对象模型,前端脚本通过dom动态修改页面,由于不与服务端进行交互,而且代码是可见的,从前端获取dom中的数据在本地执行。
~~常见的可以操纵dom的对象:URL,localtion,referrer等
预防
html实体编码,白名单过滤用户输入的恶意字符