javascript私有变量真的安全吗?
Are javascript private variables really safe?
我正在考虑让其他人在我的网页中注入脚本。我有很多用户知道的秘密,所以我不介意用户打开调试器来检查变量。(真正的秘密和安全当然是在后端处理的)
我不想让这些第三方脚本访问这些秘密。
所以这是我的问题:外部代码可以访问我的对象的私有成员吗?或者换句话说:JavaScript中的私有变量有多安全?我很困惑,因为在我的理解中,原型似乎并不能真正帮助保守秘密。同时,我认为这种安全考虑可能是网络浏览器的责任,但我不是100%确定。谢谢你!
编辑:我特别想到的情况是,一个恶意的人会查看源代码并故意编写代码,试图提取这些私有成员的值。我想知道这在多大程度上是可能的——如果有可能的话。
编辑:我指的是TypeScript所说的"私有"变量,它的意思是:
class Greeter {
private greeting: string;
public message: string;
constructor(message: string) {
this.message = message;
}
greet() {
return "Hello, " + this.message;
}
}
看着JS,我可以理解为什么它不是很安全。我差点忘了TypeScript不是JS。但我一般讲的是任何封装javascript的方式
我不想让这些第三方脚本访问这些秘密。
那就不要让他们访问这个页面。将它们锁在跨域iframe沙箱中。
外部代码可以访问对象的私有成员吗?
是的。它可能不得不跳过一些可怕的环这样做(取决于你如何实现隐私),但我想不出任何方法来可靠地保护代码从其他代码在相同的JS环境。
如何换句话说:JavaScript中的私有变量有多安全?
不是很。
同时,我认为这种安全考虑可能是web浏览器的责任
相关文章:
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 使用javascript存储变量的最安全方式
- 是否存在React Native“;WEB代码安全防护”;
- 内容安全策略:页面's设置阻止加载资源
- 指令加载真的很长,检查加载时间的方法
- 如何通过安全的https连接在javascript中使用基于soap xml的Web服务
- JS,“;对象”;,这个和那个.来自蟒蛇这真的让我很困惑.(双关语)
- 导致内容安全策略(CSP)冲突错误的本地jquery.js文件
- 如何在Google chrome安全首选项文件中创建扩展安全哈希代码
- ES6 模板文字是否比 eval 更安全
- 为什么这是真的:parseInt(1111111111111,2)===parseInt(111111111111,2)
- (false==false==true)怎么可能是真的
- CORS保持在SecurityError上:操作不安全
- 旋转木马;启用内容安全策略时无法工作
- 从自己的安全系统中重新找回自己
- 关于ajax的安全问题
- 在Javascript中构建HTML字符串真的不安全吗?
- 当代码可用时,Javascript中的eval真的有安全风险吗
- javascript eval真的有那么大的安全威胁吗?
- javascript私有变量真的安全吗?