给出的是以下html片段,它是在html文件中静态输入的:
<a id="link001" href="https://google.com" target="_blank">Google</a>
请考虑引用href
的属性值。当攻击者可以在以下上下文中为变量unsafe_string
提供任意值时,是否可以执行XSS攻击:
$('#link001').attr("href", unsafe_string);
我的问题是:注入和执行恶意代码是否可能?攻击者只控制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>