XSS攻击

XSS原理

攻击者往web页面插入恶意js代码,当用户浏览该页面时,嵌入的恶意Js代码就会执行,从而达到窃取用户cookie、传播蠕虫等目的。XSS漏洞主要是是由于Web应用程序对用户的输入过滤不足而导致的,将用户输入的数据当做代码执行。

XSS分类

存储型XSS:持久化,恶意代码是存储在服务器的数据库中,比如在博客、留言区这些地方,所有访问该页面的用户都会遭到攻击,这种XSS比较危险。
反射型XSS:非持久化,攻击者需要欺骗被害者点击他精心构造的恶意链接才能触发攻击,一般出现在搜索页面,通常用于窃取用户cookie。
DOM型XSS:一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。攻击代码不需要服务器解析响应,触发XSS依靠的是浏览器端的DOM解析,客户端上的JS脚本可以访问浏览器的DOM并修改页面的内容,不依赖服务器的数据,直接从浏览器端获得数据并执行。在客户端直接输出DOM内容的时候非常容易触发DOM型XSS漏洞,如doccment.getElementByld("x").innerHTML、doccument.write等。

XSS防御

XSS防御的总体思路是:对用户的输入(和URL参数)进行过滤,对输出进行html编码。对输入的内容进行过滤,可以分为黑名单过滤和白名单过滤。黑名单过滤虽然可以拦截大部分的XSS攻击,但是还是存在被绕过的风险。白名单过滤虽然可以基本杜绝XSS攻击,但是真实环境中一般是不能进行如此严格的白名单过滤的。对输出进行html编码,就是通过函数,将用户的输入的数据进行html编码,编码之后会被当做字符串而不会作为脚本运行。

参考:
https://www.jianshu.com/p/e74cb58ace36

posted @   学海无涯#  阅读(116)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示