0

是否可以使用 jQuery 生成一个随机数,然后以用户无法找到该数字的形式将其发布到服务器?我知道我可以“隐藏”输出,但我也可以从萤火虫中隐藏它吗?

可以用 jCryption 之类的东西来完成,还是用 jQuery 这实际上是不可能的?

4

3 回答 3

7

您在客户端所做的任何事情都不应被视为不受用户操纵的安全。

于 2013-07-26T15:43:41.443 回答
2

不,这是不可能的。浏览器和服务器之间的每一个连接都可以被用户拦截。在 Chrome 中打开您的控制台并打开“网络”选项卡以查看我在说什么。

选择那些花哨的行中的任何一个:在左侧弹出的面板中选择“标题”。塔达啊!

在“查询字符串参数”下,您将看到浏览器针对该请求发送到服务器的所有信息:您可以看到它们是经过 URL 编码的,甚至是格式正确的。

如果您通过 jQuery 发送 Ajax 请求,发送的参数也会出现在那里。如果任何使用免费软件的随机家伙可以拦截敏感数据,我建议在其他地方而不是在浏览器上计算这些数据。

我不知道您要做什么,但是如果您有一个不想让用户知道的号码,则该号码应该在服务器上传输。

于 2013-07-26T15:46:16.200 回答
1

您不能按照您的描述做您想做的事情,但是做类似事情的方法是让服务器生成并为您加密返回它。

要点:

  • $.ajax 发布到服务器端脚本
  • 服务器脚本生成,即 Guid -> 使用服务器端加密密钥生成加密的 Guid,这将很难破解给定一个合适的长度密钥和一个 guid 的长度)
  • 将其返回给 $.ajax 调用。
  • 然后当表单被回发时,服务器可以解密表单提交(因为它并且只有它知道加密密钥

HTH 如果你还没有想到的话

于 2013-07-26T15:49:07.803 回答