Javascript PHP加密-JS解密。安全问题

Javascript PHP加密-JS解密。安全问题,javascript,php,encryption,encoding,Javascript,Php,Encryption,Encoding,我有一大堆我的网站,需要打电话给外部服务器询问一些数据。此服务器包含合理的信息,例如需要根据用户的行为在网站上应用的折扣代码 由于我不能对用户的操作(不推荐和糟糕的做法)执行同步ajax调用,所以每次用户加载这些网站上的页面时,我都会异步执行。 电话检索所有可能的折扣代码,但我希望人们不能解码它并免费获得它们。 服务器创建一个json数组并将其编码为base64,然后用户浏览器中的JS将对其进行解码(atob()函数),为我提供需要使用的json 我想对此应用加密,比如字母交换算法之类的。这意味

我有一大堆我的网站,需要打电话给外部服务器询问一些数据。此服务器包含合理的信息,例如需要根据用户的行为在网站上应用的折扣代码

由于我不能对用户的操作(不推荐和糟糕的做法)执行同步ajax调用,所以每次用户加载这些网站上的页面时,我都会异步执行。 电话检索所有可能的折扣代码,但我希望人们不能解码它并免费获得它们。 服务器创建一个json数组并将其编码为base64,然后用户浏览器中的JS将对其进行解码(atob()函数),为我提供需要使用的json

我想对此应用加密,比如字母交换算法之类的。这意味着,即使用户读取了我的json结果,也无法读取它,但当我的JS代码尝试解码它时,他可以读取它(使用调试器暂停)

所以我的问题是:javascript混淆能解决我的问题吗?我的JS将包含将字符串恢复为其原始形式的算法,但整个代码都已模糊,因此调试器无法工作。这样做安全吗?如果没有,我怎么能安全地做呢

综上所述,系统的工作原理如下:

1.用户在网站中加载页面

2.JSONP AJAX调用从我的服务器询问所有可用的折扣代码

3.服务器获取列表,生成一个JSON,并返回此JSON的base64字符串

4.客户得到这个,当他点击某个特定的东西时,我解码json并根据计算应用正确的折扣

我希望你能给出一些建议:)


谢谢

如果您在客户端计算机上进行解密,则无法确保其安全。您可以应用模糊处理或其他隐藏进程的方法,但最终代码中有一个点可以进行解密,并且客户端可以使用该点。您不应该在客户端这样做

你可以这样做:

  • 网站负载
  • 它发送促销代码请求以及用户详细信息
  • 您只发送该用户可用的数据
  • 通过这种方式,您不需要加密任何内容,但它将涉及对服务器端逻辑的重新思考和更改

    可能还有另一种解决方案,它是黑客的,而且还需要更改服务器。
    按您已发送的方式发送代码,但发送的代码不完整。可能删除最后2个或更多数字。然后用户请求激活促销,并发送不完整的代码。然后,查看开始的表代码(如“%”),并在服务器端创建工作代码。

    不幸的是,我不能这样做,因为我只知道在他单击“购买”的同时应用什么折扣(我查看您购买的……尺寸、颜色、形状等)。在这一点上,我不能进行同步的ajax调用,它需要按顺序立即进行调用。如果代码被混淆了,有人怎么能停止我的解码过程?我做不到。我已经为您的问题添加了另一个可能的解决方案。谢谢第二个版本。这也不行,因为我无法访问这些网站的数据库。我只需要输入一个折扣代码,然后电子商务平台就会应用它。你可以做一些中间服务:)atob()和btoa()函数不能混淆,它们是按原样调用的。这就是你的问题。base64很容易解码。使用不同的方法。给他们一个只能使用一次的服务器可以检查的代码。顺便说一句,由于客户机可以访问您的JavaScript函数,所以他们可以直接使用它们。使用SSL保护客户端的信息。您可以使用PHP和一些附加的连接来为您的数据库创建促销代码。如果我的js函数被混淆了,客户端如何调用它们?他不知道什么是可调用的或不可调用的。你能用调试器停止模糊JS函数吗?“你能用调试器停止模糊JS函数吗?”-当然你能。。。“模糊化”只意味着诸如函数和变量名之类的标识符被替换为人类可读性较低的内容,但它完全不会改变浏览器执行该代码的方式。如下文所述,我尝试过,但无法从中获得任何有用的信息。如果我必须像这样窃取可变内容,我会迷路,我会放弃。有没有办法“更容易”地绕过这个问题?我只想知道是否“足够难”让人们停止。事实上,我很确定人们甚至不知道我在那里做什么,一开始就申请折扣。