JML 发表于 2024-1-8 22:47:10

本帖最后由 JML 于 2024-1-9 22:56 编辑

cxxjackie 发表于 2024-1-8 22:07
有测试账号吗?我注册不了,验证码加载不出来。
偶尔不成功可能是执行时机的问题,改为document-start试 ...
不是执行时机的问题,document-start一直有设置。等级不够无法私信,****64:

cxxjackie 发表于 2024-1-9 22:10:33

JML 发表于 2024-1-8 22:47
不是执行时机的问题,document-start一直有设置。等级不够无法私信,****64:
6LSm5Y+377yad29ydWNlekBzb ...

ajaxHooker.filter([
    {type: 'fetch', url: 'dox.grammarly.com/documents'},
]);
ajaxHooker.hook(request => {
    request.response = res => {
      res.json.first_content = 'test';
    };
});
我测试了一下,没有发现报错的情况,你具体是劫持哪个请求发生的问题呢?最好提供一下能复现的代码。

JML 发表于 2024-1-9 22:31:24

cxxjackie 发表于 2024-1-9 22:10
我测试了一下,没有发现报错的情况,你具体是劫持哪个请求发生的问题呢?最好提供一下能复现的代码。 ...

失败代码昨天删除了......测试的是https://subscription.grammarly.com/api/v2/subscription
点击Account页面就有,测试修改"isPremium": false为true不生效。

JML 发表于 2024-1-9 22:38:44

本帖最后由 JML 于 2024-1-9 22:57 编辑

cxxjackie 发表于 2024-1-9 22:10
我测试了一下,没有发现报错的情况,你具体是劫持哪个请求发生的问题呢?最好提供一下能复现的代码。 ...
这种修改完网页直接显示Something went wrong...
Something went wrong on our end. Please try to reload the page.
是不是改不了了。

cxxjackie 发表于 2024-1-9 22:48:41

JML 发表于 2024-1-9 22:31
失败代码昨天删除了......测试的是https://subscription.grammarly.com/api/v2/subscription
点击Account ...

我测试过了,劫持本身是成功的,页面报错是因为你修改的信息不够,光改一个isPremium不足以通过付费验证,这是报错信息:
There is an inconsistency between Auth and Subscription services, the user’s subscription has isPremium=true flag but the user itself has type='Free' from the Auth response
大意就是检测到isPremium为true但你是免费用户,说明还有别的地方要改,这需要你自己去逆向他的代码了,库本身是没问题的。

cxxjackie 发表于 2024-1-9 22:52:46

JML 发表于 2024-1-9 22:38
这种修改完网页直接显示Something went wrong...
Something went wrong on our end. Please try to reload ...

你不要整段重写他的响应值,res.json.isPremium = true 就行了,有些字段可能每次都不一样,写死了就容易出问题。

JML 发表于 2024-1-9 22:54:50

本帖最后由 JML 于 2024-1-9 22:59 编辑

cxxjackie 发表于 2024-1-9 22:52
你不要整段重写他的响应值,res.json.isPremium = true 就行了,有些字段可能每次都不一样,写死了就容易 ...
还有这种网页,https://www.kdocs.cn/l/cvz6BJpAdbHV
控制台调试都没有任何输出,劫持没看到效果。
控制台显示:The page did not request an origin-keyed agent cluster, but was put in one anyway because the origin 'https://www.kdocs.cn' had previously been placed in an origin-keyed agent cluster. Update your headers to uniformly request origin-keying for all pages on the origin.
是不是不行?
例如将包含metadata的链接响应数据中的file_acl.modify改为20

cxxjackie 发表于 2024-1-10 22:35:19

JML 发表于 2024-1-9 22:54
还有这种网页,https://www.kdocs.cn/l/cvz6BJpAdbHV
控制台调试都没有任何输出,劫持没看到效果。
控制台 ...

ajaxHooker.filter([
    {url: 'drive.kdocs.cn/api/v5/files/212645213133/metadata'},
]);
ajaxHooker.hook(request => {
    request.response = res => {
      const json = JSON.parse(res.responseText);
      json.file_acl.modify = '20';
      res.responseText = JSON.stringify(json);
    };
});
修改似乎是成功的,就是我不知道该有什么效果,没看到你说的错误信息,看起来像是浏览器的设置问题,你换个浏览器再测试看看?

gbly 发表于 2024-1-11 16:24:54

大佬冒昧问一下,如果想在请求完成之前,直接返回请求结果应该怎么写。起因是我有个xhr请求但是速度太慢了得好几秒,我想提早返回结果

JML 发表于 2024-1-11 19:29:48

cxxjackie 发表于 2024-1-10 22:35
修改似乎是成功的,就是我不知道该有什么效果,没看到你说的错误信息,看起来像是浏览器的设置问题,你 ...

只是测试而已,没多大作用。后来发现修改响应数据即使成功,但是网页只是偶尔变成修改后的状态,可能有其他代码控制。但是如果劫持过程加入输出语句,控制台也没有任何输出。现在已经放弃了。谢谢大佬,辛苦了。
页: 5 6 7 8 9 10 11 12 13 14 [15] 16 17 18 19
查看完整版本: ajax劫持库ajaxHooker