xxs是cross site script,那么简写应该是CSS,对,就是CSS,但这个名字已经被格式语言CSS占用了,无奈只能叫XSS,个人觉得这个名字更神秘毕竟有X嘛!
xxs攻击通常指,黑客通过html注入篡改了网页。从而在用户浏览网页时,控制用户浏览器的一种攻击。
xss根据效果可以分为
反射型
反射型,只是简单把用户输入的数据反射给浏览器,也就是黑客往往需要诱使用户点击一个恶意的链接,才能攻击成功。
存储型
把用户输入的数据存储到服务器,这种xss具有很强的稳定性。譬如带有恶意js的博客,用户每次浏览都会被执行。
DOM
通过修改DOM节点形成XSS。
可以通过xss获取用户的cookie,从而完成cookie劫持,直接登录用户的账户。cookie的httponly可以防止cookie劫持。然后通过发送DELETE等rest请求操作用户浏览器。
xss防御
httponly
httponly是禁止页面的js访问带有httponly的属性的cookie
输入检查
校验特殊字符,通常可以通过正则匹配。防止<>等字符。
输出检查
xss攻击大部分发生在MVC的view层,大部分可以通过模板系统解决,在Django中可以使用htmlencode编码。