是否可以使用 jQuery 的 .attr("href", value) 方法对 <a> 标签执行 XSS 攻击?
Is it possible to perform a XSS attack using jQuery's .attr("href", value) method for <a> tags?
给定以下 html 片段,它是在 html 文件中静态键入的:
<a id="link001" href="https://google.com" target="_blank">Google</a>
请注意,href
的属性值被引用了。当攻击者可以在以下上下文中为变量 unsafe_string
提供任意值时,是否可以执行 XSS 攻击:
$('#link001').attr("href", unsafe_string);
我的问题是:是否可以注入并执行恶意代码?攻击者只能控制 unsafe_string
而别无其他。攻击者可以假设受害者最终会点击 link.
用户可以通过单击 link 转到某些恶意网站的情况应该被忽略。
是的,这是不安全的,可以在恶意代码前添加 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>
给定以下 html 片段,它是在 html 文件中静态键入的:
<a id="link001" href="https://google.com" target="_blank">Google</a>
请注意,href
的属性值被引用了。当攻击者可以在以下上下文中为变量 unsafe_string
提供任意值时,是否可以执行 XSS 攻击:
$('#link001').attr("href", unsafe_string);
我的问题是:是否可以注入并执行恶意代码?攻击者只能控制 unsafe_string
而别无其他。攻击者可以假设受害者最终会点击 link.
用户可以通过单击 link 转到某些恶意网站的情况应该被忽略。
是的,这是不安全的,可以在恶意代码前添加 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>