【随笔】XSS漏洞
原理
XSS是跨站脚本攻击,是指用户向web页面插入js代码,当用户浏览这个页面时,web中嵌入的js代码会被执行。xss漏洞主要是对输入和输出没有严格控制与检验,导致输入的脚本到前端时可以被执行从而产生一些危害。
XSS的分类
思维导图

反射型
交互的数据一般不存在数据库中,例如查询等页面
xss代码出现在url参数中,浏览器发出的请求后参数提交到服务器,服务器接收后参数值出现在相应的html中,浏览器解析并执行了xss代码
1 | <script>alert( "helloworld" )</script> |
作用可获取cookie值
存储型
交互的数据一般存储在数据库中,例如注册,留言等页面
DOM型
不与后台服务器产生交互
防御方法
调用函数
对用户提交的数据可以通过调用函数进行过滤
1 2 | htmlspecialchars() //函数将输入的内容进行html编码,效果最好 str_replace() //函数可以将指定的字符串转为其他字符串的,但是会被绕过 |
-
输出编码
可以使用HTML编码(PHP的htmlspecialchars()函数、ASP的Server.HTMLEncode()函数、ASP.NET的Server.HtmlEncode()函数),用对应的HTML实体替代字面量字符,此时浏览器会将恶意代码当作HTML文档的内容而不是结构加以处理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码