最近项目接口被爆出有安全性问题,扣了我10块钱工资,原因是因为前端向后端传输的身份证是BASE64加密参数。
这是一个身份证查询公积金的接口。
因为BASE64是可以直接解密的。于是为了了解安全性问题这两天研究了一下。
加密
加密算法主要分为
1无密钥加密,如:BASE64
2有密钥加密,如:AES
3不对称密钥加密,如:RSA
请问以上能保住我10块钱的前端向后端传输的加密方式是那个呢?
答:都不行
因为各种从前端加密的方式都可以在前端看到密钥

因为前端代码是放在用户浏览器上的,是公开的
各种加密只能防止数据在传输的途中受保护,这一点HTTPS同样可以保护。
所以加密只能防止一些小鬼,如果真的有人想要破解,只是加密是没有用的
所以前端传输数据到后台的安全方法是:不传敏感信息
比如:对接微信时,微信给你的数据不是用户的身份证,而是用户的ID
用户ID代替了身份证来使用,而其他接口的入参也不是用户身份证,而是ID
这样就解决了敏感信息的安全问题,用别人的不知道的参数来代替敏感参数,而敏感参数在不公开的情况下与代替参数关联

但是如果必须传输敏感信息时又如何呢?
比如我们有时候需要得到用户的电话号码。微信是如何做的?
竟然不能防止事情发生,于是微信进行了 管控
每个向微信要求手机号的系统都需要注册关联,实名认证
每次向微信要求手机号的系统都需要用户同意,明确责任
每次得到手机号都会被微信记录,可以追述
如果微信察觉到某个系统有问题,也可以关闭系统的获取手机号的权力
前端向后端数据安全:加密无济于事,微信手机号管理策略
文章讨论了前端向后端传输敏感信息的安全性问题,指出无密钥加密如BASE64不足以保护数据,强调了前端代码公开导致的隐患。微信通过实名认证、用户同意和监控机制来管控获取手机号的行为,提供了一种间接保护方法。
524

被折叠的 条评论
为什么被折叠?



