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

如果用户在客户端更改html/javascript变量,如何防止黑客攻击?,javascript,Javascript,使用像FireBug这样的简单工具,任何人都可以在客户端更改javascript参数。如果有人花时间研究你的应用程序一段时间,他们可以学习如何更改JS参数,从而入侵你的网站 例如,简单用户可以删除他们看到但不允许更改的实体。我知道一个好的开发人员必须检查服务器端的所有内容,但这意味着更多的开销,您必须首先检查数据库中的数据,以便验证请求。这需要很多时间,对于每个操作,都必须有人验证它,并且只能通过从数据库获取所需的数据来完成 在这种情况下,您会如何减少黑客攻击? 一种更简单的验证方法是为每个ja

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


例如,简单用户可以删除他们看到但不允许更改的实体。我知道一个好的开发人员必须检查服务器端的所有内容,但这意味着更多的开销,您必须首先检查数据库中的数据,以便验证请求。这需要很多时间,对于每个操作,都必须有人验证它,并且只能通过从数据库获取所需的数据来完成

在这种情况下,您会如何减少黑客攻击?

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

您觉得上述解决方案有多好?


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

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


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

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


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

这就是为什么您必须验证服务器上的所有内容。你永远不能保证用户不会在客户端乱搞


所有内容,甚至javascript源代码对客户端都是可见的,并且可以由客户端更改,这是无法避免的。

这就是为什么必须在服务器上验证所有内容的原因。你永远不能保证用户不会在客户端乱搞


一切,甚至你的javascript源代码对客户端都是可见的,并且可以被客户端更改,这是无法避免的。

完全在客户端完成这项工作。如果此人有一个有效的身份验证cookie,那么无论页面上的代码如何,他们都可以创建任何类型的请求,并将其发送到您的服务器。您可以使用其他必须与请求一起发送的加密cookie进行操作,这些cookie还必须与页面上的输入相匹配,但您仍然需要检查此服务器端。服务器端安全对于保护您的应用程序不受未经授权的访问至关重要,您必须确保在服务器端执行的每个操作都是用户有权执行的操作。

完全在客户端执行这一操作是不可能的。如果此人有一个有效的身份验证cookie,那么无论页面上的代码如何,他们都可以创建任何类型的请求,并将其发送到您的服务器。您可以使用其他必须与请求一起发送的加密cookie进行操作,这些cookie还必须与页面上的输入相匹配,但您仍然需要检查此服务器端。服务器端安全对于保护您的应用程序免受未经授权的访问至关重要,您必须在服务器端确保正在执行的每个操作都是用户有权执行的操作。

客户端上的任何操作都可能被欺骗。如果您使用某种类型的密钥+参数签名,则签名算法必须具有足够的随机性/安全性,从而不能进行反向工程


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

客户端上的任何东西都可能被欺骗。如果您使用某种类型的密钥+参数签名,则签名算法必须具有足够的随机性/安全性,从而不能进行反向工程

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

在这种情况下,您会如何减少黑客攻击

您无法在服务器端使用验证方法

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

如何在客户端看不到的情况下使用密钥?正如您之前提到的,用户可以轻松地操作您的javascript,而且他还可以读取javascript中的所有内容,以及密钥

你不能在JavaScript中隐藏任何东西,你唯一能做的就是在JavaScript中隐藏东西,希望没有人试图发现你想要隐藏什么

在这种情况下,您会如何减少黑客攻击

您无法在服务器端使用验证方法

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

如何在客户端看不到的情况下使用密钥?正如您之前提到的,用户可以轻松地操作您的javascript,而且他还可以读取javascript中的所有内容,以及密钥


你不能在JavaScript中隐藏任何东西,你唯一能做的就是在JavaScript中隐藏东西,希望没有人试图发现你试图隐藏的东西。

你当然不能在客户端隐藏任何东西,所以尝试这样做没有什么意义

如果您所说的是,您正在发送类似于用户ID的内容,并且希望