我有一大堆网站需要调用外部服务器来获取一些数据。此服务器包含基于用户正在做的事情而需要在网站上应用的合理信息,例如折扣代码。
由于我不能对用户的操作进行同步ajax调用(不推荐也不是很好的做法),所以每次用户在这些网站上加载页面时,我都会异步调用。调用检索所有可能的折扣代码,但我希望人们无法解码并免费获得它们。服务器创建一个json数组并将其编码为base64,然后用户浏览器中的JS将对其进行解码( to ()函数),从而得到我需要使用的json。
我想对此进行加密,就像字母交换之类的算法。这意味着,即使用户读取了我的json结果,也无法读取它,但是当我的JS代码试图解码它时(使用调试器暂停),他可以读取它。
所以我的问题是: javascript混淆能解决我的问题吗?我的JS将包含将字符串返回到其原始形式的算法,但是整个代码都被混淆了,因此调试器将无法工作。这是一种安全的处理方法吗?如果不是,我怎么才能安全地做呢?
综上所述,系统是这样工作的:
1.用户在网站中加载页面
2. 2.JSONP调用向我的服务器询问所有可用的折扣代码
3.服务器获取列表,将其生成JSON并返回此json的base64字符串
4.客户得到了这个,当他点击某个特定的东西时,我解码json,并根据计算结果应用正确的折扣。
我希望它足够清楚,以便您能给出一些建议:)
谢谢!
发布于 2018-02-12 17:30:12
如果你在客户机上进行解密,那么就没有办法保证它的安全。您可以应用混淆,或其他隐藏您的进程的方法,但最终在代码中有一个点进行解密,并可供客户端使用。您不应该在客户端这样做。
你可以这样做:
通过这种方式,您不需要加密任何内容,但它将涉及一些重新思考和对服务器端逻辑的更改。
也许还有另一种解决方案,这很麻烦,而且还需要更换服务器。按已发送代码的方式发送代码,但发送的代码不完整。也许可以去掉最后两位或更多数字。然后用户请求激活升级,并发送不完整的代码。然后查看启动的表代码(如'%'),并在服务器端创建工作代码。
https://stackoverflow.com/questions/48743011
复制相似问题