zoukankan      html  css  js  c++  java
  • 关于百度网盘提取码验证失败问题的猜想

    百度云盘的出现为网络资源的存储和共享提供了平台,而由于保护用户的隐私安全,百度云盘随后限定只有输入相应的提取码才能访问分享的文件。

    但最近在百度云盘资源提取时碰到个奇怪的问题:如果同时打开了多个资源分享链接并输入了提取码之后,此时再依次点击每个资源的"下载资源"或者"保存到网盘",部分资源就会出现"提取码错误"的提示。

    随后又测试了几次,仍然出现了类似的提示,为了找出错误原因,我重新调整了提取百度云盘资源的操作流程:

    1)依次打开百度云盘资源分享链接;

    2)在输入第一个链接的提取码之后,直接点击“下载”或“保存网盘”;

    3)重复步骤2,依次输入下一个链接和进行下载操作;

    而根据以上的这3个步骤,原来出现错误的提示却没有出现,这说明正确的提取码是能够下载资源的,于是我猜想这个错误是不是因为保存提取码的原因呢?

    那么就需要知道它的提取码会放在那里,一般而言,为了保持用户访问状态,避免重复输入同一个验证或者访问权证,网站都喜欢把第一次保存的验证码放入到session的某个对象中。

     session的概念
       session是指用户u与服务器s在会话过程中的用来存储对象信息的容器,一般每次请求都会产生新的session对象,即使sessionID相同。
     session的工作原理
      ①当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中。
      ②首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量。
      ③当执行PHP脚本时,通过使用session_register()函数注册session变量。
      ④当PHP脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下的session库中,这个路径可以通过php.ini文件中的session.save_path指定,下次浏览网页时可以加载使用。
     
    为了验证session是否可能扰乱,就需要找到各个资源网页的session对象,结果这几个资源网页的session的ID完全相同,并且它们都在由相同用户与百度服务器建立连接产生的,也就是说这几个网页保存的提取码使用的是相同的session,并且它的值却不相同。
    然而在提炼sessionID数据来匹配文件下载权限时就会出现被多重覆盖的session变量验证失败的现象,到此步骤,就可以解释出按照之前操作会出现错误提示的原因了。
  • 相关阅读:
    Spring整合CXF之添加拦截器
    Spring整合CXF之发布WebService服务
    CXF添加自定义拦截器
    cxf处理一些Map等复杂类型
    webservice执行过程深入理解
    谈谈房车
    关于贷款消费
    记一次玩比特币的经历
    那年K城暑期工
    SpringBoot整合Xxl-Job
  • 原文地址:https://www.cnblogs.com/fangenjoy/p/4457934.html
Copyright © 2011-2022 走看看