84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
php 做手机短信验证把验证存在session中安全吗
session 数据库 缓存
存哪里里面好点呢
温故而知新,可以为师矣。 博客:www.ouyangke.com
数据库。 短信验证码要考虑几个约束:1.多少秒之内同一个手机号不得再接收短信2.同一个ip一个时间段里不能调用多少次,为了安全,或许你还需要加上一天之内短信不能超过多少条。 所以这些约束的实现用数据库比较好。session肯定不行。备注: 加上图形验证码,不然接口容易遭受攻击哦。
建议在cache 里面 比如 redis memcached 都可以.cache 的性能比DB要的多
安全,因为session在服务器上,客户端看不到,至于session的存储方式,可以默认文件session,可以session入库,还可以用内存来存,比如上面有人说的redis memcache等,也可以在linux下用自己写的缓存,都行,效率和成本只能有一个,用缓存成本高,用数据库效率低
但是实际上,现在很少有公司自己搞这个,都用第三方,流量低的网站第三方划算,流量高的网站,你还缺这点钱?
安全是相对的,你如果能保证cookie被篡改服务器能发现就是安全的,这一点可以通过动态签名来实现,动态签名可以是value、key、time的hash,之后服务器再对动态签名进行验证。不过一般这个业务场景用redis等缓存来实现比较方便,不推荐用session,session的超时事件没有缓存好控制。
数据库。 短信验证码要考虑几个约束:1.多少秒之内同一个手机号不得再接收短信2.同一个ip一个时间段里不能调用多少次,为了安全,或许你还需要加上一天之内短信不能超过多少条。 所以这些约束的实现用数据库比较好。session肯定不行。备注: 加上图形验证码,不然接口容易遭受攻击哦。
建议在cache 里面 比如 redis memcached 都可以.
cache 的性能比DB要的多
安全,因为session在服务器上,客户端看不到,至于session的存储方式,可以默认文件session,可以session入库,还可以用内存来存,比如上面有人说的redis memcache等,也可以在linux下用自己写的缓存,都行,效率和成本只能有一个,用缓存成本高,用数据库效率低
但是实际上,现在很少有公司自己搞这个,都用第三方,流量低的网站第三方划算,流量高的网站,你还缺这点钱?
安全是相对的,你如果能保证cookie被篡改服务器能发现就是安全的,这一点可以通过动态签名来实现,动态签名可以是value、key、time的hash,之后服务器再对动态签名进行验证。不过一般这个业务场景用redis等缓存来实现比较方便,不推荐用session,session的超时事件没有缓存好控制。