用户密码安全之加盐hash

在开发微信小程序的时候,开始关注到用户密码安全这方面的问题。这篇文章主要记录一下所了解到的一些知识。


微信小程序授权很奇葩?

下面的链接是微信小程序获取用户信息的时候做的授权处理
https://mp.weixin.qq.com/debug/wxadoc/dev/api/signature.html
刚开始觉得这种授权方式很麻烦,现在认为其方法非常值得学习。这种授权模式有一个特定的名词,OAuth,最新版本是OAuth 2.0


什么是OAuth?

下面链接是关于oauth的授权方式介绍,本文不做详细介绍。

https://tools.ietf.org/html/rfc6749#page-4(难啃,但是偶尔啃一下可以涨姿势)
http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html(容易啃)

很多网站都支持QQ、微信、新浪的授权登录,详细可以去参考一下各自的授权接入文档。
http://wiki.open.qq.com/wiki/mobile/OAuth2.0%E7%AE%80%E4%BB%8B

微信开放平台、QQ开放平台和百度开放平台等都是一种oauth的授权方式。

回看刚接触互联网的时候,大多数网站都有账号和密码登录验证功能,每个网站都有一套账号密码系统,到现在很多网站都支持大平台的授权,比如支持QQ、微信、新浪的授权登录。授权的方式可能有变化,但是授权的本质一直都没有变化,都是对于敏感数据的保护。

大部分的在线登录模式都是如此:
B网站触发授权请求–》提交到服务器授权接口–》用户在第三方应用平台授权获取B网站访问用户的部分信息,例如OpenId,同时生成Token–》返回授权信息–》获得授权后,网站可以根据OpenId对用户进行区分,从而提供特定服务,也可以通过Token访问第三方平台的部分信息–》用户可以访问这个网站的个人敏感数据

OAuth比较常见的是大厂的授权,比方github、qq和微信等,小厂的OAuth授权比较少见。毕竟大厂的用户群体大,保密措施做得也比较好,这是前提。


没有OAuth的情况下怎么做?

如果我的产品没有接入大厂的OAuth,还是要打造自己的账户密码系统,怎么办?
用户密码属于敏感数据,如果被拖库或者被恶意访问,对于用户来说是非常不好的。
在微信的开放平台了解到一个词,加盐hash,请看一则讨论

https://www.zhihu.com/question/20299384

感想:

  • 密码不能明文存放,加盐hash是比较好的做法

  • 还是那句话,通信一定要带ssl

  • 里面一个答案提到的【随机盐】是一个很好的想法

相信看完这则讨论会有自己的一些看法。

ps:具体到个人,最好还是避免用同一套账户密码,小网站的账号密码泄露风险比大厂的大得多,我就试过在一个小网站注册的时候用了微博的账号密码,结果不久微博就被盗了,后来我都是区分对待的,不能用同一套密码,切记。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值