gpt4 book ai didi

javascript - 攻击者能否在html5数据属性中插入恶意代码

转载 作者:行者123 更新时间:2023-11-30 05:46:37 25 4
gpt4 key购买 nike

所以我之前了解到,使用 html5 中的数据属性,您可以插入要在 javascript 文件中处理的值。例如

<a href="#" data-name="hello" class="check">Hey</a>

处理 javascript 文件将有一行来处理可能执行此操作的链接标记

var value=$('.check').data('name');
window.location.href="http://www.example.com/'+value+'";

现在我想知道,恶意编码人员可以利用它吗?在将其用于重定向之前是否需要清理该值?

最佳答案

这真的取决于。

攻击者可以在他的浏览器中修改他想要的任何东西,所以无论你在前端放置多少净化,攻击者都可以绕过你所有的 javascript 函数等来绕过你的前端 -结束代码。

我并不是说您不应该在前端清理您的输入,因为它总是有助于合法用户的可用性和体验。

如果您要将用户重定向到的地址使用该数据属性对服务器执行某些操作,那么一定要在两个地方对其进行清理:前端和后端。否则,您不必担心,最坏的情况是恶意用户(或知识渊博的用户)最终会进入 404 页面。

** 编辑 **

阅读您在此答案中的评论后,这是我更新的答案:

危险在于您如何使用该信息。以谷歌分析脚本为例:

Google 为您提供了一个脚本,可帮助您通过 Google Analytics 界面跟踪访问者的操作和行为。

如果您更改 google 脚本中的任何值,google analytics 将无法工作,并且您无法通过 analytics 脚本破解 google。

Google 如何做到这一点?他们将所有安全措施置于后端,并对将在网站中呈现、存储在数据库中或以某种方式与服务器交互的可修改用户输入进行清理。

回到你的案例:

如果您打算使用该数据属性执行 document.write()、eval、执行数据库查找或任何敏感操作(删除、更新、检索数据),那么可以无论如何:对其进行 sanitizer 。

你打算如何 sanitizer 它?那是特定于问题的,您很可能应该问一个新问题。

关于javascript - 攻击者能否在html5数据属性中插入恶意代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17560353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com