jquery - 是否可以使用 jQuery 的 .attr ("href", value) 方法对 <a> 标签执行 XSS 攻击?

标签 jquery html xss

给出以下 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/

相关文章:

javascript - 在函数参数上使用时包含不是函数

javascript - 在 html 标签中禁用 js

php - 如何在html上显示htmlspecialchars?

.net - 为什么使用 Microsoft AntiXSS 库?

javascript - 获取表格内的输入标签

javascript 从各个深度获取 dom 元素子元素

javascript - 从类中设置的点击处理程序中使用 setTimeout 调用 javascript 类函数

html - 非流体容器内的 Bootstrap 流体容器

javascript - 当必须首先在服务器上生成图像时,将图像异步预加载到浏览器缓存中

javascript - Silviomoreto bootstrap-select 选项工具提示