gpt4 book ai didi

javascript - jquery 的安全问题

转载 作者:行者123 更新时间:2023-11-28 15:37:29 24 4
gpt4 key购买 nike

我正在开发页面,该页面使用模式对话框允许客户选择项目。

在此对话框中,客户可以从预先填充的列表中选择一项或写入自己的项目。一旦用户单击“确定”按钮,模式就会消失,使用 .val() 获取项目的名称。并通过 jQuery 的 .text()函数中,我们将项目名称输入到 div 元素中。

由于客户可以输入任何内容,我是否需要担心他们输入 <script></script>标签?在这种情况下我还应该关注其他安全问题吗?

我不担心后端,因为当用户最终提交此表单时,我们在后端进行输入验证。我只关心前端。

谢谢!

最佳答案

如果您使用 jQuery 的 .text(untrustedString) 方法,那就没问题了。该方法将转义任何 html 或标签。

$('<div>').text("<test>")[0].innerHTML
// returns "&lt;test&gt;"

想要的是使用.html(untrustedString)方法,因为字符串中的任何脚本标记或其他html元素都会被创建。

$('<div>').html("<test>")[0].innerHTML
// returns "<test></test>"
<小时/>

尽管如此,如果这仅在他们自己的浏览器中显示,则无法获得太多安全性。你只能攻击......你自己?人们已经有能力将他们想要的任何 JavaScript 注入(inject)到自己浏览器中运行的网页中,如果他们愿意的话。

唯一对安全性产生影响的是我的黑客脚本标签在其他人的浏览器中执行,例如,该浏览器通过互联网将他们的 cookie 发送给我,这样我就可以在您的网站上假设他们的身份。

因此,这与安全性无关,而是当有人输入可能对 HTML 有意义的文本时,您的应用程序不会崩溃。

也就是说,在这种情况下,您绝对应该使用 text()

关于javascript - jquery 的安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25128638/

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