2015-02-05 149 views
2

我很担心javascript安全性,因为客户端可以查看和编辑代码,我知道为了克服这一点,我们可以使用ajax调用在服务器上运行关键进程。但最近我正在解析云代码,它的一部分运行在服务器上。我想知道这是否是JavaScript安全问题的答案,它是否安全?javascript客户端安全

+4

凡是需要用户保护必须在服务器上,而不是客户端上完成的。 – Barmar 2015-02-05 19:18:55

+0

我在我的问题中已经提到过这个问题。 – 2015-02-06 05:16:22

回答

4

是Parse.com服务器端Javascript安全吗?

服务器端JavaScript是相对安全。对于Parse.com(我对他们的系统不太熟悉),它似乎接受客户端数据。 客户端数据始终不安全。这就是说,你可以使安全的解析它(双关语意图),以确保在运行它之前剥去潜在的危险。

这个系统的安全性取决于你编写代码的程度。

服务器端Javascript是否安全?

与上述相关的是,服务器端JavaScript可以是安全的,只要它是以安全的方式编写的。 IE中,只有数据被传递,任何需要安全的数据都会保留在服务器上,并且只能由服务器更新。

例如,如果您要更新游戏得分(取自某些parse.com示例),而不是向服务器发送要更新的分数,请将触发分数更新的操作发送给服务器,并让服务器解析操作并添加到分数。这是安全的。发送评分本身不是,因为评分可以由客户操纵。

是Parse.com客户端Javascript安全吗?

绝对不是。客户端掌握在敌人手中 - 永远不会有相信客户端不会操纵他们的数据和/或生成它的代码。

开发人员有责任确保您的数据仅由客户端无法处理的系统处理和处理。

那么,parse.com是否安全?

回应我已经说过的一切,parse.com是一样安全,因为你使它。它仅取决于您设计应用程序的程度。

服务器端Javascript是安全问题的答案吗?

服务器端任何东西都是固有地然后客户端更安全。 这是一个解决所有安全问题的一站式解决方案吗?编号错误编码(IE:SQL注入)甚至开放端口(IE:通过Web服务器的电子邮件转发)仍然存在很多危险。因此,这种方法有两个方面,确保服务器和保护代码。这些通常分为适当技能的人员(例如,开发人员不应被要求关闭服务器上的端口,例如,除非没有其他人这样做,并且您已经用完了受过训练的猴子的香蕉)。

但是,并非所有的东西都可以在服务器上运行。例如,捕获客户端输入和绘制元素到屏幕上是客户端必须接受的两件事情。 这就是你决定系统需求的地方。

就拿上面的例子中关于通过行动而不是得分数量张贴分数到服务器,它是固有更安全,然后发送了比分,但它仍然是不完全发送因为玩家的操作时的安全很容易欺骗系统发送重复的动作。

你可以开发一些逻辑来判断动作是否允许,或者有些甚至更疯狂的逻辑来决定一个玩家的动作率是否为人类,但是你可能永远不会让任何人将他们的得分报告给服务器,将会是最安全的,也会导致一场不太好玩的比赛。

决定什么样的领域可以或不可以保护,以及它对应用程序有什么方面(或者游戏 - 我使用游戏,因为parse.com的示例使用了游戏)总是有风险的。

进一步计算器相关阅读

这里有一些很好的说明有关JavaScript注入的特定漏洞: Javascript security risks?

这一个能直接打动客户端/服务器端验证: JavaScript: client-side vs. server-side validation

这里有一些关于“如何”缩小和混淆代码的注释: How can I obfuscate (protect) JavaScript?

关于在Javascript混淆,在这里看到大量的笔记它是(尤其是在评论)如何不安全: Hardest-To-Reverse JavaScript obfuscator

+0

这很简短,服务器端的行动是我可能会去的。谢谢 – 2015-02-06 05:15:43

-2

如果你真的关心你的JavaScript,然后你可以

1)收集在一个单一的JS文件的JS程序和使用js compress再压缩它,这将使其难以阅读和理解。

2)扰码/混淆使用JS scrambler您的JS代码,这将使它有点困难的破解者破解你的JS

然而,考虑到工具在网络上提供的繁多,在我看来,有恶意的黑客可能会随时危害JS。这可以通过在服务器端施加严格的安全协议来补偿。

希望它能帮助!

+0

我知道我们总是可以压缩代码,但是这种方法并不是最安全的,用户可以随时解压缩它。 – 2015-02-06 05:29:27