建设起来的问题 我听说全局变量,并有可供不同的编码选择,电码防伪的安全隐患使一个函数的变量可以被另一个函数看到并使用,例如“函数A对函数B可见;或者函数A的变量在函数B中传递并可用”。
问题: 如果客户端是不是一个问题,什么是最好的面向对象的结构或实践JavaScript语法,这让事情封装并让您的变量暴露给操作增加了最大的安全性?只是一个很好的面向对象练习问题。
建设起来的问题 我听说全局变量,并有可供不同的编码选择,电码防伪的安全隐患使一个函数的变量可以被另一个函数看到并使用,例如“函数A对函数B可见;或者函数A的变量在函数B中传递并可用”。
问题: 如果客户端是不是一个问题,什么是最好的面向对象的结构或实践JavaScript语法,这让事情封装并让您的变量暴露给操作增加了最大的安全性?只是一个很好的面向对象练习问题。
JavaScript实际上从来都不安全,因为它完全运行客户端,所有东西都可见且可操作。 我倾向于使用闭包来管理作用域,以将作用域限制为适用于我的不同代码块的作用域。然而,这不提供任何安全优势
我喜欢封闭模型,因为它为内部方法和变量提供了良好的封装。您可以定义功能而不用担心它会“污染”全局空间并可能干扰其他功能。
就我而言,没有任何模式可以保护您免受操控。最好的建议是不要信任JavaScript变量,并且在接受它们的值之前总是使用正确的服务器端验证。
如果客户端不是问题,那么1.什么是良好的OOP结构,以及2.保护变量不被操纵? – ryanjohnsond
您可以使用Doug的特权模式来提供影响构造函数或工厂内定义的私人变量的公共方法,属性和事件。 Object.freeze,Object.defineProperty和Object.seal都可以在现代浏览器中提供属性访问安全性。 – dandavis