zoukankan      html  css  js  c++  java
  • 解除百度云浏览器端对下载大文件的限制

    百度网盘对浏览器端下载大文件做了一些限制,当超过一定大小的文件必须使用百度云管家才可以下载,这给用户的使用带来了不便。

     [不看分析请直接拉到页底]

    1. 百度网盘限速原理

      当点击下载一个大文件的时候百度网盘会弹出这样一个提示框。

      

      我们给下个断点,看看是什么代码创建了这个提示框。

      

      然后再次点击下载一个大文件,我们发现断点已经断下来了。

      

      可以看出这里是在把提示对话框显示出来,我们需要查看调用栈往上找找。

      

      跳过一些jQuery的操作,我们看到了这样一个函数,继续往上找。

      

      这个isPlatformWindows的分支很可疑,我们跟进去看一下,于是我把DOM断点取消了,并在1748行这里下了个断点。

      

      断下来了,跟进去看看。

      

      这个函数只是简单的判断了 navigator.platform 这个平台相关的字符串,我们修改一下看看会发生什么结果

      

      

      让代码继续跑起来

      

      嗯,我们成功了。

    2. 写段代码来破解吧

      从上面的调试中我们已经知道了百度是通过判断 window.navigator.platform 是不是以 win32 开头来判断是否是运行浏览器下载的,所以我们只需要修改这个变量就轻松解除了限制。

      经过尝试我发现,platform这个属性被百度冻结了。

      所以只能修改 navigator 。

      修改代码如下:

      

    Object.defineProperty(this , 'navigator' , {value: { platform: "" }});
    

      

    一句话总结:

      打开浏览器控制台(F12) 在命令行行 Object.defineProperty(this , 'navigator' , {value: { platform: "" }}); 这段代码即可解除百度网盘对浏览器下载大文件的限制。

  • 相关阅读:
    C语言随笔_printf输出多行
    C语言随笔_return答疑
    《疯狂Java讲义》(二十八)---- 异常
    《疯狂Java讲义》(二十七)----泛型
    《疯狂Java讲义》(二十七)---- Collections
    《疯狂Java讲义》(二十六)---- Map
    《疯狂Java讲义》(二十五)---- List 集合
    《疯狂Java讲义》(二十四)---- Set集合
    Problem(2)----How to set eclipse console locale/language
    Problem(1)----Eclipse hangs on copy/cut for JavaScript files
  • 原文地址:https://www.cnblogs.com/aepkill/p/5515433.html
Copyright © 2011-2022 走看看