第十五章:第16节论坛系统(BBS)用户的基本设置

更新于:2018-05-15 15:41:48

在用户的基本设置这一块,写了四个功能:修改个人资料、头像、密码、与手机号。


1.png


这四个功能全写在了一个控制器中


控制器:app\home\controller\Uset.php

模型:app\common\model\Area.php、UserInfo.php、UserLogs.php、User.php

扩展类:app\extend\Sms.php、File.php

视图文件:app\home\view\uset\*.html


主要说说修改密码与修改手机的功能:


1)修改密码


很多平台修改密码都是这样的:


1.png


验证老密码从而修改新密码,而楠神不准备这样,而是通过验证手机激活码获取修改密码的权限。很多网站都采用了这种方法,可以防止用户密码被盗以后被篡改。


值得注意的地方:


1.png


发送短信的手机号要从后台获取,比如从session中获取,而不能从前台表单获取。从前台表单获取是不安全的,有可能被篡改。比如A用户手机是131********,这个手机号就应该从后台获取才是可信的,从前台表单传输,有可能从表单中提交的是另外一手机号132********。


2)修改手机


1.png


修改手机号分两步,第一步先要解绑老手机号,第二步绑定新手机号。


为什么要解绑老手机号?


获取老手机激活码,要验证当前操作的是不是用户本人。这一步很重要。假如某人账号被盗,不验证老手机激活码就能修改了用户的手机号,这样很不安全,手机号起不到保护账号的作用了。


老手机激活码要在获取新手机激活码前验证。


1.png


注意:签名这个地方,一定要做好防XSS攻击工作


1.png

总结下:


前面楠神写“注册账号”和“找回密码”时,在发手机激活码前都加了“图形验证码”,为什么在写“修改密码”与“修改手机”时不需要加“图形验证码”了呢?


①、当用户处于登录状态时,手机号不再是用户随意填写的,而是从后台获取的固定手机号。楠神在程序中已对每一手机号发送时间间隔和次数做了限制,所以不怕有人恶意刷短信接口。


②、绑定用户新手机,往新手机发激活码前需要验证老手机激活码,这个“老手机激活码”可以起到“图形验证码”的作用。


本节学习代码》》》