请教一个JS请求数据的安全问题

niumowangguilai 2017-08-17 08:44:53
js调用一些项目内的接口或者发起一些POST、GET请求,如何保障安全问题?

举个例子:
1.后台代码调用一个接口,接口参数是按照一定的的顺序把参数排序,然后在加上一些私钥之类的东西,签名或者MD5加密
接口端进行验证。
如果以上方法用js来做,排序的顺序和私钥岂不是全部被暴露了。

求指点,谢谢!

...全文
322 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
楠小南 2017-08-21
引用 7 楼 niumowangguilai 的回复:
[quote=引用 5 楼 diaodiaop 的回复:] 微信jsapi同样把生成的东西暴露在了外面. 难道他们不认为 这是"不安全"的吗? 你想多了....
我这里可能表达的不是太准确,其实我是想说。一个web服务接口,假设传递三个参数,第三个参数是前两个参数按照字典排序后键值对拼接的哈希值,那么,我用js在调用这个接口的时候,别人可用通过js的代码看明白我这个接口的参数如何传递,以及传递规则。我想避免这种情况,应该如何处理。[/quote] 你可以在JS用RSA 将敏感字段加一下。接收方再解开。 不过密匙都是在JS里面,也会看到 。
回复
c02645 2017-08-21
你使用加密规则在JS上实现,别人自然知道,但你可以在后台加密啊,把加密码好的密钥给前台的JS赋值,这样别人就不知道你的加密过程和加密基础数据了。
回复
niumowangguilai 2017-08-20
引用 5 楼 diaodiaop 的回复:
微信jsapi同样把生成的东西暴露在了外面. 难道他们不认为 这是"不安全"的吗? 你想多了....
我这里可能表达的不是太准确,其实我是想说。一个web服务接口,假设传递三个参数,第三个参数是前两个参数按照字典排序后键值对拼接的哈希值,那么,我用js在调用这个接口的时候,别人可用通过js的代码看明白我这个接口的参数如何传递,以及传递规则。我想避免这种情况,应该如何处理。
回复
niumowangguilai 2017-08-20
引用 2 楼 sp1234 的回复:
任何程序的安全都是相对的。比如说随便一个程序,假设它非常简单与它是大型的复杂的程序相比,那么即使什么加密、混淆都不做,它的安全性也是完全不一样的。特别简单的程序本身就非常容易模仿,甚至都“不值得模仿”。所以其实要进行平衡,目的是“抢”一些先机。 比如说微信公众号应用,它首先通过客户的服务器软件将token、密码等等换取了认证的(会话的)随机 code编码,然后这个编码就在客户端反复使用,客户端再访问公众号服务器软件时总是提供此code,服务器就能用此code 获得实际的用户的 openid 编号。 可以看出,都是综合平衡的产物。没有绝对的明文或者绝对的不可破解不可模仿一说。其实重点还是为了用流行的 js 方法来快速开发手机应用。抛开这个前提,那么就不会理解微信应用的客户端编程有什么用了。
我这里可能表达的不是太准确,其实我是想说。一个web服务接口,假设传递三个参数,第三个参数是前两个参数按照字典排序后键值对拼接的哈希值,那么,我用js在调用这个接口的时候,别人可用通过js的代码看明白我这个接口的参数如何传递,以及传递规则。我想避免这种情况,应该如何处理。
回复
by_封爱 2017-08-18
微信jsapi同样把生成的东西暴露在了外面. 难道他们不认为 这是"不安全"的吗? 你想多了....
回复
比如说对于密码学来说,真正的加密是通过“公开机制”来落实的。也就是把加密程序的源代码告诉每一个人!!!! 所以重点不在于说别人跟你是不是完全不一样,而在于说别人根本不在你的监视之下操作。
回复
你自己的 js 访问自己的服务器时,一方面你要说明自己传的是什么,另一方面要说明有没有必要这样传。你不可能现在就有腾讯或者阿里巴巴一样的需求和开发费,但是你完全可以有一样的技术。比如说如果你可以在3个月之后才为100个服务请求同意增加一个 code 或者 session 或者 token 参数,但是现在没有必要加,这完全是合理的设计。重点在于你确实能做到,而且能收到产品更新开发费用。
回复
任何程序的安全都是相对的。比如说随便一个程序,假设它非常简单与它是大型的复杂的程序相比,那么即使什么加密、混淆都不做,它的安全性也是完全不一样的。特别简单的程序本身就非常容易模仿,甚至都“不值得模仿”。所以其实要进行平衡,目的是“抢”一些先机。 比如说微信公众号应用,它首先通过客户的服务器软件将token、密码等等换取了认证的(会话的)随机 code编码,然后这个编码就在客户端反复使用,客户端再访问公众号服务器软件时总是提供此code,服务器就能用此code 获得实际的用户的 openid 编号。 可以看出,都是综合平衡的产物。没有绝对的明文或者绝对的不可破解不可模仿一说。其实重点还是为了用流行的 js 方法来快速开发手机应用。抛开这个前提,那么就不会理解微信应用的客户端编程有什么用了。
回复
niumowangguilai 2017-08-17
怎么没有人呢,求路过,求指点,谢谢
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2017-08-17 08:44
社区公告
暂无公告