上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: 脚本体验师001 - 

如何阻断302跳转,并提取出 finalUrl

[复制链接]
  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-1-19 12:13:13 | 显示全部楼层
    本帖最后由 cxxjackie 于 2022-1-19 21:20 编辑
    王一之 发表于 2022-1-19 09:13
    我这里 finalUrl 一直是重定向后的链接

    我在新版油猴测试了一下确实是这样,readyState为2的时候finalUrl就变了,不知道哪个版本改的,我猜应该跟移除那个属性是同个版本,感觉都可以搞个兼容方案出来了:
    1. function getFinalUrl(url) {
    2.     return new Promise(resolve => {
    3.         const xhr = GM_xmlhttpRequest({
    4.             url: url,
    5.             method: 'get',
    6.             onreadystatechange: res => {
    7.                 if (res.readyState === 4 || res.finalUrl !== url) {
    8.                     xhr.abort();
    9.                     return resolve(res.finalUrl);
    10.                 }
    11.                 const reg = res.responseHeaders.match(/tm-finalurl[^:]+: (\S+)\s/);
    12.                 if (reg && reg.length === 2) {
    13.                     xhr.abort();
    14.                     return resolve(reg[1]);
    15.                 }
    16.             }
    17.         });
    18.     });
    19. }
    复制代码

    另外那几个字符我知道是啥了,gcal是chrome beta,iikm是edge,还有dhdg是chrome,fire火狐。
    已有1人评分好评 油猫币 贡献 理由
    王一之 + 1 + 4 + 1 ggnb!

    查看全部评分 总评分:好评 +1  油猫币 +4  贡献 +1 

    回复
    订阅

    使用道具 举报

  • TA的每日心情
    开心
    2024-7-30 00:00
  • 签到天数: 122 天

    [LV.7]常住居民III

    29

    主题

    601

    回帖

    542

    积分

    专家

    积分
    542

    油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-1-19 15:55:06 | 显示全部楼层
    cxxjackie 发表于 2022-1-19 12:13
    我在新版油猴测试了一下确实是这样,readyState为2的时候finalUrl就变了,不知道哪个版本改的,我猜应该 ...

    兼容油猴的话您这个就是标准答案了,非常完美的阻断了跳转
    但我还是要把悬赏分给王一之,理由是希望脚本猫能有更多的可扩展特性
    万军之中取上将首级,如探囊取物,只需要 maxRedirects 哦!!!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-7-30 00:00
  • 签到天数: 122 天

    [LV.7]常住居民III

    29

    主题

    601

    回帖

    542

    积分

    专家

    积分
    542

    油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-1-19 17:11:44 | 显示全部楼层
    cxxjackie 发表于 2022-1-19 12:13
    我在新版油猴测试了一下确实是这样,readyState为2的时候finalUrl就变了,不知道哪个版本改的,我猜应该 ...

    经过更多测试,又觉得不对了,在 onload 里我看到了302跳转后的结果
    在新版油猴里 xhr.abort();  似乎没起作用
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-1-19 21:28:07 | 显示全部楼层
    脚本体验师001 发表于 2022-1-19 17:11
    经过更多测试,又觉得不对了,在 onload 里我看到了302跳转后的结果
    在新版油猴里 xhr.abort();  似乎没 ...

    我测试半天知道是为啥了,数据量太小,请求太快了,在abort之前请求就已经完成,如果搞个下载链接就可以成功abort掉了:https://edge.microsoft.com/exten ... rce%3Dondemand%26uc
    话说回来,这种小请求不取消应该也无所谓,不会占用多少资源。
    另外上面的正则表达式有错误,少了个+号,已修正。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-7-30 00:00
  • 签到天数: 122 天

    [LV.7]常住居民III

    29

    主题

    601

    回帖

    542

    积分

    专家

    积分
    542

    油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-1-19 22:19:24 | 显示全部楼层
    cxxjackie 发表于 2022-1-19 21:28
    我测试半天知道是为啥了,数据量太小,请求太快了,在abort之前请求就已经完成,如果搞个下载链接就可以 ...

    原来是这样!!!
    那就完美了,大文件测试过了没问题
    在没得到这个方法前可都是直接暴力干通,再res.finalUrl取走。。。
    嗯,伟的有点大
    回复

    使用道具 举报

  • TA的每日心情

    2024-5-10 14:44
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    4

    主题

    70

    回帖

    64

    积分

    初级工程师

    积分
    64

    油中3周年挑战者 lv1

    发表于 2022-1-26 01:28:39 | 显示全部楼层
    这个问题我2年前就遇到……那时候网上到处发帖子都没有找到解决办法

    这个帖子Mark了,以后遇到 302 需求再试试
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-7-30 00:00
  • 签到天数: 122 天

    [LV.7]常住居民III

    29

    主题

    601

    回帖

    542

    积分

    专家

    积分
    542

    油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-1-26 02:45:26 | 显示全部楼层
    ThisAV 发表于 2022-1-26 01:28
    这个问题我2年前就遇到……那时候网上到处发帖子都没有找到解决办法

    这个帖子Mark了,以后遇到 302 需求再 ...

    嘿兄台的,闻道有先后,术业有专攻
    感觉您挺有意思,嗯要不要找个问题问问你
    比如您说:扒别人代码的加料收集数据,嗤之以鼻
    这如何解释
    或者说不扒别人代码,如何提高自己的代码水平,我觉得很多人都陷入了这种困境
    回复

    使用道具 举报

  • TA的每日心情

    2024-5-10 14:44
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    4

    主题

    70

    回帖

    64

    积分

    初级工程师

    积分
    64

    油中3周年挑战者 lv1

    发表于 2022-1-26 04:06:52 | 显示全部楼层
    脚本体验师001 发表于 2022-1-26 02:45
    嘿兄台的,闻道有先后,术业有专攻
    感觉您挺有意思,嗯要不要找个问题问问你
    比如您说:扒别人代码的加料 ...

    评论别评一半啊,重点是扒了你的代码然后“加料”的人
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-7-30 00:00
  • 签到天数: 122 天

    [LV.7]常住居民III

    29

    主题

    601

    回帖

    542

    积分

    专家

    积分
    542

    油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-1-26 14:13:27 | 显示全部楼层
    ThisAV 发表于 2022-1-26 04:06
    评论别评一半啊,重点是扒了你的代码然后“加料”的人

    比如呢哥哥
    比如
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2022-1-26 16:28:30 | 显示全部楼层

    这个确实存在的,比如在别人基础上魔改代码收集购物平台,网课之类的的账号密码和手机号,以及一些其他的敏感数据,我跟一之之前还拖爆过一个脚本的后台数据库,全部都是敏感数据,一之靠一个高危漏洞夺权给他数据库清空掉了
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表