防止用户更改 JavaScript 变量

防止用户更改 JavaScript 变量

是否有可能以某种方式阻止用户通过地址栏或使用 FireBug 之类的程序更改 JavaScript 变量?

答案1

JavaScript 是在客户端计算机上解释的原始源代码,因此答案是否定的。您最好在服务器上执行尽可能多的工作。您推送到客户端的任何 JavaScript 代码都可能被客户端篡改。

答案2

这个问题很容易让人产生这样的疑问:“你的最终目标是什么?”

正如其他人所说,不,你不能。JavaScript 是客户端,因此完全由客户端控制,而不是你。

正如 heavyd 所提到的,混淆可能会有用,但它肯定不是一种安全/万无一失的预防方法。

如果您出于安全原因需要这样做,那么答案很可能是首先不应该使用客户端 JavaScript 来完成。

答案3

您可以创建私有变量并使用访问器方法来获取它们

var mySingleton = function(){

    /* here are my private variables and methods */

    var privateVariable = 'something private';

    function showPrivate(){

        console.log(privateVariable);

    }



    /* public variables and methods (which can access private variables and methods ) */

    return {

        publicMethod:function(){

            showPrivate();

        },

        publicVar:'the public can see this!'

    }

}

var single = mySingleton();

single.publicMethod();  // logs 'something private'

console.log(single.publicVar); // logs 'the public can see this!'

答案4

不,但是您可以混淆代码,使其难以阅读和逆向工程。

相关内容