0

我对 jquery 和客户端编程完全陌生。我试图找出实现这一目标的方法:

  1. 在客户端,我有一个隐藏的用户 ID/配置文件 ID,我想对其进行加密,但是在操作隐藏值时,我必须对其进行解密并执行一些操作。

  2. 我有一个全局数组,如下所示:

    var users=[{"u_id":"1234", "u_name":"Test"},{"u_id":"12345", "u_name":"Test1"}];
    

这个数组被其他各种组件使用,例如,当用户将鼠标悬停在 profile-id 上时,它将从上面的数组中获取详细信息并将结果显示给他。

简而言之,我想加密/解密脚本中的所有全局变量。

任何插件或方法都将得到高度应用。

4

3 回答 3

2

客户端的加密/解密完全没有意义。加密用于向某人隐藏某些东西。为此,您需要一个秘密(密码等),您不会将其提供给该人。

如果您想在客户端上加密和解密某些内容,客户端将需要密钥才能进行加密。因此,客户端拥有解密任何加密秘密所需的一切。这意味着任何用户都拥有解密数据所需的一切,并且实际上可以看到正在发生的过程(尝试在浏览器的 Javascript 调试器中设置断点)。因此,根据定义,整个练习毫无意义。它可能会阻止一些非常不熟练的扑克游戏者,但任何有能力实际使用解密数据做某事的人都可以轻松获得它。

于 2013-09-04T08:50:23.767 回答
0

我知道无法在客户端执行此操作,您可以序列化和混淆数据(例如在 json 字符串上使用 base 64 编码)。

于 2013-09-04T08:47:25.253 回答
0

@deceze:是的,您发布的示例,假设用户 42,试图更新他的年龄,基本上用户在登录时会看到 42 作为他的个人资料 ID,然后随后调用他将进行更改,他需要通过 sessionkey /apikey 以及配置文件 ID 和数据,所以基本上如果你建议我如何管理这些 sessionkey/apikey,以便外部的用户/黑客不能误用.. – Jayaram Pradhan 1 分钟前

这很简单:

  1. 要求用户通过常规登录机制登录,通常涉及会话 ID。此会话尽可能安全地识别用户,因为它可以通过 Web 安全地执行任何操作。您的安全重点必须在这里。
  2. 知道用户是谁,您可以验证他的任何和所有操作。如果用户要求更改某个用户的个人资料信息,请检查他是否允许这样做。不需要 API 密钥或任何东西。服务器接收到更改请求,服务器通过会话知道请求用户是谁,服务器可以决定接受或拒绝请求。

    • 在更新自己的个人资料的具体情况下,如果只允许用户更新他的个人资料和他的个人资料:只需要一个动作/URL,当用户向该动作发布数据时,服务器知道用户是谁是并更新该用户的个人资料。用户不需要提交他想要更新的个人资料的用户 id,实际上他不能提交用户 id,只有他的个人资料会得到更新。没有可公开访问的操作允许他更新其他任何人的个人资料。
  3. 没有3。

于 2013-09-04T09:31:43.447 回答