为了账号安全,请及时绑定邮箱和手机立即绑定

深入探讨,用户注册和登录安全问题,MySQL表的设计

/ 猿问

深入探讨,用户注册和登录安全问题,MySQL表的设计

达令说 2018-10-04 13:29:58

大家可以说一下,如何提高用户信息的安全性呢?
登录,注册信息一般怎么安全的保存在Mysql中呢?

查看完整描述

2 回答

?
慕用2447696

看到深入探讨这几个字我进来了,然而看到问题时,就有点尴尬了…然而我也只懂一些些基本的

首先说,注册,注册的时候提交方式可以用from也可以用ajax,请求类型一般为post,post相对来说比get要安全些,用户名,生日等信息保存铭文,密码等重要的要加密(php中一般用md5),采用密码+token的方式进行加密。

登陆的时候,加验证,比如现在流行的验证码、手机验证码等,其中验证码的复杂性也可以掌控,最简单的就是数字验证了,复杂的图文等;然后就是登陆密码了,登陆密码最好是在前端用算法加密后再去后端,与用户密码匹配了。

大概就是这样了(手机码的,排版不好看,请谅解~)


查看完整回答
反对 回复 2018-10-10
?
当年话下

后台:

  • PHP的密码专用加密函数是:password_hash,验证是否正确:password_verify

  • MD5/SHA1 在PHP都是很过时的密码加密算法了

  • 使用password_hash得到的运算结果是有salt的,即使密码一样,每次密文都是不一样的,这样避免了数据库暴库。

  • 至少在目前来说,password_hash 的 cost = 10(默认),暴力破解不太可能

登录:

  • 登录除了HTTPS、或者ActiveX等浏览器插件做的密码输入框(银行常用),无安全方法

  • HTTP的任何请求,都是明文传输,包括密码

  • 多么复杂的「验证码」都可以攻破,除非:12306

  • 比如:Discuz!等登录FORM表单,在submit之前会将密码MD5一下之后,再POST传输给后台

  • 但这只能在一定程度上面解决密码非明文的问题,中间人照样可以去暴力破解MD5

  • 当JS运行失败时,Discuz!并没有MD5密码就POST过去了(所以?)

Cookie:

  • Cookie里面不要记录任何形态的密码,这是绝对不安全的

  • set-cookie时使用httponly来拒绝Javascript对敏感信息的访问

  • 登录态必须使用Session来处理

  • 我看到楼主的问题标签中有Laravel,它的用户验证、保存登录机制可以好好学习一下,非常的优秀。

安全

  • SSL 加密是目前最安全的传输协议,可以预防中间人的攻击(前提是你的根证书是由国际知名CA颁发)

  • 但是也抵挡不住 键盘记录仪、木马。因为获得了电脑的控制权,我们还谈个鬼?

  • ActiveX/浏览器Plugins的 密码框 可以在一定程度上抵挡键盘记录

  • QQ客户端的密码输入框,使用键盘记录仪都读取不到密码,具体如何实现涉及到Ring0等操作系统内核


查看完整回答
反对 回复 2018-10-10

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信