cxxjackie 发表于 2022-1-19 12:13:13

本帖最后由 cxxjackie 于 2022-1-19 21:20 编辑

王一之 发表于 2022-1-19 09:13
我这里 finalUrl 一直是重定向后的链接
我在新版油猴测试了一下确实是这样,readyState为2的时候finalUrl就变了,不知道哪个版本改的,我猜应该跟移除那个属性是同个版本,感觉都可以搞个兼容方案出来了:function getFinalUrl(url) {
    return new Promise(resolve => {
      const xhr = GM_xmlhttpRequest({
            url: url,
            method: 'get',
            onreadystatechange: res => {
                if (res.readyState === 4 || res.finalUrl !== url) {
                  xhr.abort();
                  return resolve(res.finalUrl);
                }
                const reg = res.responseHeaders.match(/tm-finalurl[^:]+: (\S+)\s/);
                if (reg && reg.length === 2) {
                  xhr.abort();
                  return resolve(reg);
                }
            }
      });
    });
}
另外那几个字符我知道是啥了,gcal是chrome beta,iikm是edge,还有dhdg是chrome,fire火狐。

脚本体验师001 发表于 2022-1-19 15:55:06

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

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

脚本体验师001 发表于 2022-1-19 17:11:44

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

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

cxxjackie 发表于 2022-1-19 21:28:07

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

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

脚本体验师001 发表于 2022-1-19 22:19:24

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

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

ThisAV 发表于 2022-1-26 01:28:39

这个问题我2年前就遇到……那时候网上到处发帖子都没有找到解决办法

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

脚本体验师001 发表于 2022-1-26 02:45:26

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

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

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

ThisAV 发表于 2022-1-26 04:06:52

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

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

脚本体验师001 发表于 2022-1-26 14:13:27

ThisAV 发表于 2022-1-26 04:06
评论别评一半啊,重点是扒了你的代码然后“加料”的人

比如呢哥哥
比如

李恒道 发表于 2022-1-26 16:28:30

脚本体验师001 发表于 2022-1-26 14:13
比如呢哥哥
比如
这个确实存在的,比如在别人基础上魔改代码收集购物平台,网课之类的的账号密码和手机号,以及一些其他的敏感数据,我跟一之之前还拖爆过一个脚本的后台数据库,全部都是敏感数据,一之靠一个高危漏洞夺权给他数据库清空掉了
页: 1 2 [3] 4
查看完整版本: 如何阻断302跳转,并提取出 finalUrl