javascript 客户端安全
javascript client side security
我担心 javascript 安全,因为客户端可以查看和编辑代码,我知道要克服这个问题,我们可以使用 ajax 调用服务器上的 运行 关键进程。但最近我正在分析云代码,其中一部分 运行s 在服务器上。我想知道这是否是 javascript 安全问题的答案,它安全吗?
如果你真的很在意你的javascript,那么你可以
1) 将您的 JS 例程收集到一个 JS 文件中,并使用 js compress 将其缩小,这将使其难以阅读和理解。
2) scramble/obfuscate 你的 JS 代码使用 JS scrambler 这会让破解者更难破解你的 JS
但是,考虑到 web 上可用的大量工具,在我看来,JS 随时可能被有恶意的破解者破坏。这可以通过在服务器端实施严格的安全协议来弥补。
希望对您有所帮助!
Parse.com服务器端Javascript安全吗?
服务器端 Javascript 相对 安全。在 Parse.com 的情况下(我对他们的系统不是很熟悉)它似乎接受客户端数据。 客户端数据总是不安全的。话虽这么说,您可以 通过解析它(双关语不是故意的)来确保它安全以确保任何潜在的危险是在 运行 之前剥离它。
这个系统的安全性取决于您编写代码的质量。
服务器端 Javascript 安全吗?
与上述相关,服务器端 Javascript 可以是安全的,前提是它是以安全的方式编写的。 IE,只传递数据,任何需要安全的数据都保留在服务器上,只由服务器更新。
例如,如果您要更新游戏分数(取自某些 parse.com 示例)而不是向服务器发送要更新的分数,请向其发送触发分数更新的操作并让服务器解析该操作并添加到分数。这是安全的。发送分数本身不是,因为分数可以被客户端操纵。
Parse.com客户端Javascript安全吗?
绝对不是。客户掌握在敌人手中——你永远永远相信客户不会操纵他们的data and/or 生成它的代码。
作为开发人员,您有责任确保您的数据仅由系统处理,无论如何都不能被客户端操纵。
那么,parse.com安全吗?
呼应我已经说过的一切,parse.com 和你做的一样安全。这仅取决于您对应用程序的设计程度。
服务器端 Javascript 是安全问题的答案吗?
服务器端本质上比客户端更安全。 它是解决所有安全问题的一站式解决方案吗?不。 糟糕的编码(IE:SQL 注入)甚至开放端口(IE:通过 Web 服务器转发电子邮件)仍然存在很多危险。因此,这种方法有两个方面,保护服务器和保护代码。这些通常被分配给具有适当技能的人(例如,不应要求开发人员关闭服务器上的端口,除非没有其他人这样做并且您 运行 没有香蕉供受过训练的人使用猴子)。
但是,并不是所有的东西都可以运行在服务器上。例如,捕获客户端输入和在屏幕上绘制元素是客户端必须接受的两件事。 这是您决定系统需求的地方。
以我们上面关于通过操作而不是分数编号将分数发布到服务器的示例为例,它本质上比发送分数更安全,但它仍然不是完全发送一个动作时是安全的,因为玩家可以很容易地欺骗系统发送重复的动作。
你可以开发一些逻辑来查看该动作是否被允许,或者一些甚至更疯狂的逻辑来决定玩家的动作率是否是人类,但是你不能让任何人向服务器报告他们的分数并且这将是 最 安全的,也会导致游戏不是很有趣。
确定您可以保护和不能保护任何东西的哪些区域以及它将对应用程序(或游戏 - 我使用游戏因为 parse.com 示例使用游戏)有什么影响,这始终是一个经过计算的风险问题。
更多 Whosebug 相关阅读
这里有一些关于 Javascript 注入的特殊漏洞的很好的注释:
Javascript security risks?
这个直接与 client-side/server-side 验证对话:
JavaScript: client-side vs. server-side validation
这里有一些关于 'how-to' 缩小和混淆代码的注释:
How can I obfuscate (protect) JavaScript?
关于 Javascript 中的混淆,请参阅此处了解有关它有多不安全的大量注释(尤其是在评论中):
Hardest-To-Reverse JavaScript obfuscator
我担心 javascript 安全,因为客户端可以查看和编辑代码,我知道要克服这个问题,我们可以使用 ajax 调用服务器上的 运行 关键进程。但最近我正在分析云代码,其中一部分 运行s 在服务器上。我想知道这是否是 javascript 安全问题的答案,它安全吗?
如果你真的很在意你的javascript,那么你可以
1) 将您的 JS 例程收集到一个 JS 文件中,并使用 js compress 将其缩小,这将使其难以阅读和理解。
2) scramble/obfuscate 你的 JS 代码使用 JS scrambler 这会让破解者更难破解你的 JS
但是,考虑到 web 上可用的大量工具,在我看来,JS 随时可能被有恶意的破解者破坏。这可以通过在服务器端实施严格的安全协议来弥补。
希望对您有所帮助!
Parse.com服务器端Javascript安全吗?
服务器端 Javascript 相对 安全。在 Parse.com 的情况下(我对他们的系统不是很熟悉)它似乎接受客户端数据。 客户端数据总是不安全的。话虽这么说,您可以 通过解析它(双关语不是故意的)来确保它安全以确保任何潜在的危险是在 运行 之前剥离它。
这个系统的安全性取决于您编写代码的质量。
服务器端 Javascript 安全吗?
与上述相关,服务器端 Javascript 可以是安全的,前提是它是以安全的方式编写的。 IE,只传递数据,任何需要安全的数据都保留在服务器上,只由服务器更新。
例如,如果您要更新游戏分数(取自某些 parse.com 示例)而不是向服务器发送要更新的分数,请向其发送触发分数更新的操作并让服务器解析该操作并添加到分数。这是安全的。发送分数本身不是,因为分数可以被客户端操纵。
Parse.com客户端Javascript安全吗?
绝对不是。客户掌握在敌人手中——你永远永远相信客户不会操纵他们的data and/or 生成它的代码。
作为开发人员,您有责任确保您的数据仅由系统处理,无论如何都不能被客户端操纵。
那么,parse.com安全吗?
呼应我已经说过的一切,parse.com 和你做的一样安全。这仅取决于您对应用程序的设计程度。
服务器端 Javascript 是安全问题的答案吗?
服务器端本质上比客户端更安全。 它是解决所有安全问题的一站式解决方案吗?不。 糟糕的编码(IE:SQL 注入)甚至开放端口(IE:通过 Web 服务器转发电子邮件)仍然存在很多危险。因此,这种方法有两个方面,保护服务器和保护代码。这些通常被分配给具有适当技能的人(例如,不应要求开发人员关闭服务器上的端口,除非没有其他人这样做并且您 运行 没有香蕉供受过训练的人使用猴子)。
但是,并不是所有的东西都可以运行在服务器上。例如,捕获客户端输入和在屏幕上绘制元素是客户端必须接受的两件事。 这是您决定系统需求的地方。
以我们上面关于通过操作而不是分数编号将分数发布到服务器的示例为例,它本质上比发送分数更安全,但它仍然不是完全发送一个动作时是安全的,因为玩家可以很容易地欺骗系统发送重复的动作。
你可以开发一些逻辑来查看该动作是否被允许,或者一些甚至更疯狂的逻辑来决定玩家的动作率是否是人类,但是你不能让任何人向服务器报告他们的分数并且这将是 最 安全的,也会导致游戏不是很有趣。
确定您可以保护和不能保护任何东西的哪些区域以及它将对应用程序(或游戏 - 我使用游戏因为 parse.com 示例使用游戏)有什么影响,这始终是一个经过计算的风险问题。
更多 Whosebug 相关阅读
这里有一些关于 Javascript 注入的特殊漏洞的很好的注释: Javascript security risks?
这个直接与 client-side/server-side 验证对话: JavaScript: client-side vs. server-side validation
这里有一些关于 'how-to' 缩小和混淆代码的注释: How can I obfuscate (protect) JavaScript?
关于 Javascript 中的混淆,请参阅此处了解有关它有多不安全的大量注释(尤其是在评论中): Hardest-To-Reverse JavaScript obfuscator