给出以下 html 片段,该片段静态输入到 html 文件中:
<a id="link001" href="https://google.com" target="_blank">Google</a>
请注意,href
的属性值被引用。当攻击者可以在以下上下文中为变量 unsafe_string
提供任意值时,是否可以执行 XSS 攻击:
$('#link001').attr("href", unsafe_string);
我的问题是:是否有可能注入(inject)并执行恶意代码?攻击者只能控制 unsafe_string
而没有其他控制权。攻击者可以假设受害者最终会点击该链接。
用户可以通过单击链接转发到某些恶意网站的情况应该被忽略。
最佳答案
是的,这是不安全的,只需在恶意代码前面添加 javascript:
即可:
$('#link001').attr("href", "javascript:alert('evil')");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a id="link001" href="https://google.com" target="_blank">Google</a>
关于jquery - 是否可以使用 jQuery 的 .attr ("href", value) 方法对 <a> 标签执行 XSS 攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54626970/