【问题标题】:Best OOP JavaScript practice for security最佳 OOP JavaScript 安全实践
【发布时间】:2013-06-19 18:19:18
【问题描述】:

底部的问题

建立问题 我听说全局变量是代码安全性的安全风险,并且有不同的编码选择可用于使一个函数中的变量对另一个函数可见和可用,例如,“函数 A 对函数 B 可见;或者,要在函数 B 中传递和使用的函数 A 的变量。”

问题: 如果客户端不是问题,那么 JavaScript 语法中最好的 OOP 结构或实践是什么,它可以保持封装并增加最大的安全性,避免变量暴露于操作?只是一个很好的 OOP 练习题。

【问题讨论】:

  • 您可以使用 Doug 的特权模式来提供影响构造函数或工厂中定义的私有变量的公共方法、属性和事件。 Object.freeze、Object.defineProperty 和 Object.seal 都可以在现代浏览器中提供属性访问安全性。

标签: javascript oop variables namespaces


【解决方案1】:

JavaScript 确实从来都不是安全的,因为它完全在客户端运行,所有内容都可见并且可以操作。 我倾向于使用闭包来管理范围,以将范围限制在适合我的不同代码块的范围内。但是,这并没有提供任何安全优势

我喜欢闭包模型,因为它为内部方法和变量提供了良好的封装。您可以定义功能,而不必担心它会“污染”全局空间并可能干扰其他功能。

就我而言,没有任何模式可以保护您免受操纵。最好的建议是不要信任 JavaScript 变量,并始终在接受它们的值之前使用适当的服务器端验证。

【讨论】:

  • 如果客户端不是问题,那么 1. 良好的 OOP 结构和 2. 保护变量不被操纵?
猜你喜欢
  • 2011-04-14
  • 2010-09-28
  • 1970-01-01
  • 1970-01-01
  • 2014-01-17
  • 2011-01-26
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多