body标签background属性XSS payload无效原因及javascript:语法解析
关于body background属性XSS失效的原因及javascript:协议说明
为什么你的XSS payload没触发效果
- 现代主流浏览器(Chrome、Firefox、Edge等)早已收紧安全规则,不再支持在
<body>的background属性中解析javascript:开头的伪协议。这个属性原本用于指定背景图片的URL,现在浏览器只会识别合法的资源路径(比如本地图片路径、网络图片地址),遇到javascript:开头的值会直接忽略,不会执行其中的脚本。 - 这种限制是浏览器厂商为防范XSS攻击特意设置的,早期部分旧版本浏览器可能支持这种写法,但目前已被全面禁用。
javascript:语法的定义与官方称谓
javascript:是一种伪协议(Pseudo-Protocol),在官方规范中被称为javascriptscheme。它不属于HTTP、HTTPS这类真实的网络传输协议,而是专门用于让浏览器执行紧随其后的JavaScript代码。- 过去它常被用在
<a>标签的href属性里(比如<a href="javascript:alert('test')">),或者一些支持URL输入的属性中,但因容易被恶意利用构造XSS攻击,现在很多场景已被浏览器限制使用。
内容的提问来源于stack exchange,提问作者Stephen Fong
相关产品推荐
相关产品推荐

