Javascript 不允许您向对象提供私有数据或方法,就像在 C++ 中那样。哦,实际上,是的,通过一些涉及关闭的解决方法。但是来自 Python 背景,我倾向于相信“假装隐私”(通过命名约定和文档)已经足够好,甚至可能比“强制隐私”(由 Javascript 本身强制执行)更可取。当然,我可以想到不正确的情况——例如,人们在没有 RTFM 的情况下与我的代码交互,但我受到了指责——但我不是那种情况。
但是,有些事情让我停下来。Javascript 大师 Douglas Crockford 在“Javascript: The Good Parts”和其他地方一再将虚假隐私称为“安全”问题。例如,“攻击者可以轻松地直接访问字段并用自己的方法替换方法”。
我对此感到困惑。在我看来,如果我遵循最低限度的安全做法(验证,不要盲目信任从浏览器发送到我的服务器的数据;不要在我的网站上包含第三方脚本而不检查它们),那么就没有假装隐私不如强制隐私“安全”。是对的吗?如果不是,假装隐私与强制隐私具有安全含义的情况是什么?