3

用户密码安全之加盐hash

 3 years ago
source link: https://blog.csdn.net/oqqYuan1234567890/article/details/69939251
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

用户密码安全之加盐hash

original.png
皿小草 2017-04-09 23:41:42 922
分类专栏: 网络 文章标签: 安全

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


微信小程序授权很奇葩?

下面的链接是微信小程序获取用户信息的时候做的授权处理
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:具体到个人,最好还是避免用同一套账户密码,小网站的账号密码泄露风险比大厂的大得多,我就试过在一个小网站注册的时候用了微博的账号密码,结果不久微博就被盗了,后来我都是区分对待的,不能用同一套密码,切记。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK