如果用户在客户端更改html/javascript变量,如何防止黑客入侵?

Ali*_*ile 19 javascript

使用像FireBug这样的简单工具,任何人都可以在客户端更改javascript参数.如果有人花时间研究你的应用程序一段时间,他们可以学习如何更改JS参数,从而导致攻击你的网站.

例如,简单用户可以删除他们看到但不允许更改的实体.我知道一个优秀的开发人员必须检查服务器端的所有内容,但这意味着更多的开销,您必须首先检查来自数据库的数据,以便验证请求.这需要花费大量时间,因为每个人都必须对其进行验证,并且只能通过从DB获取所需数据来完成此操作.

在这种情况下,你会做些什么来减少黑客攻击?

一种更简单的验证方法是为每个javascript函数添加另一个参数,该参数必须是先前参数和密钥之间的签名.

上面的解决方案听起来有多好?

我们的团队使用teamworkpm.net来组织我们的工作.我刚刚发现我可以通过更改javascript函数(最初编辑我自己的任务)来编辑其他任务.

Hai*_*vgi 16

当每个函数调用服务器时,在执行操作之前在服务器端,您需要检查是否允许该用户执行此操作.

有必要构建服务器端权限机制以防止不必要的操作,您可能希望定义用户组,而不是单个用户级别,这使得它更容易.


Dan*_*ain 6

客户端的任何东西都可能被欺骗.如果您使用某种类型的密钥+参数签名,您的签名算法必须足够随机/安全,以至于无法进行逆向工程.

增加客户端复杂性所产生的开销最好用于制作适当的服务器端验证.


jig*_*fox 5

在这种情况下,您将采取什么措施来最大程度地减少黑客入侵?

您无法在服务器端使用验证方法来解决。

一种更简单的验证方法是为每个javascript函数添加另一个参数,该参数必须是先前参数和密钥之间的签名。
上面的解决方案对您来说听起来有多好?

以及如何在客户端看不到密钥的情况下使用密钥?正如您自己之前提到的,用户可以轻松地操纵您的JavaScript,并且还可以阅读javascript中的所有内容(密钥)!

您无法在JavaScript中隐藏任何内容,唯一可以做的就是使JavaScript中的内容变得晦涩难懂,并希望没有人试图找出要隐藏的内容。