我不知道从哪里开始或问什么,所以我来了。
我有三个函数(a
,b
和c
)和一个变量。必须允许函数a
来更改变量,但是其他两个变量(b
和c
只能读取该变量,并且必须可以通过以下方式读取其值:我网站上任何地方的任何代码。
长话短说:只有函数'a'可以编辑该变量的值,而没有其他。其他代码只能读取它:
此伪层次结构将如下所示工作:
var data = "some data";
function a() {
//this function would be able to read & write to
//data like so:
console.log(data); //reads
data = 'some other data'; //writes
}
function b() {
console.log(data); //reads
data = 'changed tata'; //This would have to be impossible for that function.
}
function c() {
// And here the same example as in function b.
}
a(); b(); c();
答案 0 :(得分:1)
这是一个XY问题。如果您不信任的代码在您的网站中运行,则是否可以写入您的变量之一并不重要,因为它可以通过多种其他方式来拥有该页面:用代码替换所有代码使用其他可以写入的变量,只是窃取身份验证数据并直接与服务器本身进行通讯,等等。解决此问题的唯一真正方法是确保所有不受信任的JavaScript都在不同的源中运行。