开发者社区> 问答> 正文

新项目,前台想学OSC不用Session,但验证码不知道怎么办:报错 

新项目,前台想学OSC不用Session,而是用Cookies来跟踪用户。所以项目默认没有开启Session。
但网站一些关键地方需要使用验证码。大家都知道,一般验证码服务端是用Session记录。
听说OSC登录启用验证码了,我就来看看,OSC验证码是不是没用Session,用错误密码登录了几次,发现原来还是用的。

那么问题来了:
1、项目中禁用Session除了可以解决Session引起的脚本阻塞问题、负载均衡中的Session问题,还有哪些好处与坏处?(我好权衡是否启用Session)
2、OSC Cookies中的 reg_key 作用是什么?

展开
收起
kun坤 2020-06-08 16:36:26 856 0
1 条回答
写回答
取消 提交回答
  • 在生成和校验验证码的时候开启session呗 ###### 后端应该还是有数据放到缓存里面的,OSCHINA_SESSION 作为key,验证码也在里面 ######恩,我也是打算这样做,修改下ThinkPHP的验证码类,用Redis来存,而不是用Session######据红暑说,OSCHINA_SESSION只是个名字,跟session没点关系的。######看来红薯也是个大忽悠,哈哈######这个,session那个可以是随机生成的吧,可以放缓存或者放在一个静态数组里,验证过后unset,关系不大。session还不是随机生成的,然后保存序列化数据的,只是会放一个session id 到cookie这样吧######reg key猜测是确定验证码的key值,可以更改下值,再登陆,看验证码的正确与否######

    引用来自“欣儿”的评论

    这个,session那个可以是随机生成的吧,可以放缓存或者放在一个静态数组里,验证过后unset,关系不大。session还不是随机生成的,然后保存序列化数据的,只是会放一个session id 到cookie这样吧 谢谢

    我把验证码类改成了用Redis来记录,用Cookie来跟踪,不用系统的Session。我的考虑是以后方便做负载均衡。

    倒是那个_reg_key_ 好像和验证码没直接关系######k######f###### session依赖cookie,没什么复杂的。自行模拟一个session就行了:
    生成一个随机字符串,发送到cookie, 作为session_id, 然后将验证码保存到数据库中就行了。
    说明楼主对session机制了解并不清楚,导致了才问这个问题。 ######嗯,明白的###### 推荐个会话共享框架,感兴趣可以了解一下:
      bboss会话共享培训文档
    bboss session共享架构及特点 
    bboss会话共享demo使用指南  

    bboss session共享使用方法介绍######谢谢######验证码可以用 缓存服务 memcached 或者 redis 来替代session

    ######嗯,我已经用redis来记录了######用Application,cache都行,记一下key,把key放页面里面###### 验证码功能也可以利用cookie来做,思路:
    1,请求验证码图片,在后台生成验证码字符串,加密后写到cookie里面,服务端不做任何保存
    2,验证验证码是否正确时,把用户输入的验证码与当前验证码cookie一并传到后台,然后在后台对用户输入的验证码加密,再与传过来的验证码cookie比较是否相等就可以了 ######回复 @月影又无痕 : 验证码在用户点击时生成.把cookie的过期时间设置为30秒后,并把该过期时间作为cookie内容的一部分用AES加密起来.就算从你看到验证码开始并套到你的脚本里执行,也就只能自动耍30秒.######回复 @千斤难买春秋醉 : 这里的数据库存储,就和session是同一个道理了。######回复 @月影又无痕 : 改进一下也是可以的,可以把加密串在数据库里存一下。前台传过来不但判断相等,还要判断数据库里有没有。如果有,删掉。如果没有,哼哼######@月影又无痕 我已减肥到了116斤######回复 @金三胖 : 三哥,你吃的这么胖,你的臣民们面黄肌瘦,身材矮小,好像就只有你一个胖子。

    2020-06-08 17:58:16
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
QQ移送页面框架优化实践 立即下载
QQ移动页面框架优化实践 立即下载
低代码开发师(初级)实战教程 立即下载