gpt4 book ai didi

javascript - javascript "fake privacy"是否存在安全风险?

转载 作者:数据小太阳 更新时间:2023-10-29 05:36:31 24 4
gpt4 key购买 nike

Javascript 不允许您像在 C++ 中那样为对象提供私有(private)数据或方法。哦,实际上,是的,通过一些涉及关闭的解决方法。但是来自 Python 背景,我倾向于认为“假装隐私”(通过命名约定和文档)已经足够好,或者甚至比“强制隐私”(由 Javascript 本身强制执行)更可取。当然,我可以想到这不是真的情况——例如人们在没有 RTFM 的情况下与我的代码进行交互,但我受到指责——但我没有遇到那种情况。

但是,有件事让我犹豫了。 Javascript 大师 Douglas Crockford 在“Javascript: The Good Parts”和其他地方反复将虚假隐私称为“安全”问题。 For example , “攻击者可以很容易地直接访问字段并用自己的方法替换方法”。

我对此感到困惑。在我看来,如果我遵循最低限度的安全实践(验证,不要盲目信任,从浏览器发送到我的服务器的数据;不要在我的网站上包含第三方脚本而不检查它们)那么就没有任何情况假装隐私不如强制隐私“安全”。是对的吗?如果不是,假装隐私与强制隐私在什么情况下会产生安全隐患?

最佳答案

本身不是。然而,正如 Crockford 指出的那样,这确实意味着您无法将不受信任的 JavaScript 代码安全地加载到您的 HTML 文档中。如果您确实需要在浏览器中运行此类不受信任的 JavaScript 代码(例如社交网站中用户提交的小部件),请考虑 iframe 沙盒。

作为 Web 开发人员,您的安全问题通常是主要的互联网广告经纪人不支持(甚至 prohibit)构建他们的广告代码。不幸的是,您必须相信 Google 不会提供恶意 JavaScript,无论是有意还是无意(例如他们被黑了)。

这是我作为对 another question 的回答发布的 iframe 沙盒的简短描述。 :

Set up a completely separate domain name (e.g. "exampleusercontent.com") exclusively for user-submitted HTML, CSS, and JavaScript. Do not allow this content to be loaded through your main domain name. Then embed the user content in your pages using iframes.

If you need tighter integration than simple framing, window.postMessage() may help, allowing scripts in different frames to communicate with each other in a controlled manner.

关于javascript - javascript "fake privacy"是否存在安全风险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14304378/

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