吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 523|回复: 11
收起左侧

[求助] Tampermonkey 添加UA 求助

[复制链接]
dmvip 发表于 2024-11-28 10:26
源网站 base64:aHR0cHM6Ly93d3cud3dnei5jbi92b2QtZGV0YWlsLWlkLTUyMDU4Lmh0bWw
我发现在再手机浏览器上这个站点正常访问,
但是在PC上发现访问就404,
我想到的解决方案 是改浏览器的UA 标识

以下我写的 篡改猴 (Tampermonkey)  脚本 发现 有问题
麻烦大佬们帮忙 修正一下 感谢

[Java] 纯文本查看 复制代码
// ==UserScript==
// [url=home.php?mod=space&uid=170990]@name[/url]         Custom Android User-Agent for www.wwgz.cn using Proxy
// [url=home.php?mod=space&uid=467642]@namespace[/url]    http://tampermonkey.net/
// [url=home.php?mod=space&uid=1248337]@version[/url]      0.1
// @description  Set custom Android User-Agent for www.wwgz.cn using Proxy.
// [url=home.php?mod=space&uid=686208]@AuThor[/url]       Your Name
// [url=home.php?mod=space&uid=195849]@match[/url]        *://www.wwgz.cn/*
// [url=home.php?mod=space&uid=609072]@grant[/url]        none
// @run-at       document-start
// ==/UserScript==

(function() {
    'use strict';

    var androidUserAgent = "Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn;  MI2 Build/JRO03L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0";

    const navigatorProxy = new Proxy(navigator, {
        get: function(target, property) {
            if (property === 'userAgent') {
                console.log("当前设置的User-Agent: ", androidUserAgent);
                return androidUserAgent;
            }
            return target[property];
        }
    });

    Object.defineProperty(window, 'navigator', {
        value: navigatorProxy,
        writable: false,
        configurable: false
    });

    // 在页面加载完成后(可根据实际情况选择合适的时机)查看最终的userAgent值
    window.addEventListener('load', function() {
        console.log("最终获取到的User-Agent: ", navigator.userAgent);
    });
})();

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

CDCBB 发表于 2024-11-28 10:47
// ==UserScript==
// @name         Set Custom User-Agent
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Add a custom User-Agent to requests
// @AuThor       You
// @match        *://*/*
// @grant        GM_xmlhttpRequest
// ==/UserScript==

(function() {
    'use strict';

    // 自定义 User-Agent
    const customUA = 'Your Custom User-Agent String';

    // 覆盖 GM_xmlhttpRequest 的行为,修改请求的头部信息
    const originalXMLHttpRequest = GM_xmlhttpRequest;

    GM_xmlhttpRequest = function(details) {
        if (!details.headers) {
            details.headers = {};
        }

        // 添加或修改 User-Agent 头部
        details.headers['User-Agent'] = customUA;

        // 调用原始的 GM_xmlhttpRequest
        return originalXMLHttpRequest(details);
    };

    // 你也可以修改原生的 XMLHttpRequest 来设置 UA
    const originalXHR = XMLHttpRequest.prototype.open;
    XMLHttpRequest.prototype.open = function(method, url, async, user, password) {
        this.setRequestHeader('User-Agent', customUA);
        originalXHR.apply(this, arguments);
    };

})();
 楼主| dmvip 发表于 2024-11-28 10:59
CDCBB 发表于 2024-11-28 10:47
// ==UserScript==
// @name         Set Custom User-Agent
// @namespace    http://tampermonkey.net/ ...

感谢 您的回复, 我刚刚设置了  不行了
 楼主| dmvip 发表于 2024-11-28 11:02
CDCBB 发表于 2024-11-28 10:47
// ==UserScript==
// @name         Set Custom User-Agent
// @namespace    http://tampermonkey.net/ ...

image.png


发现 还是之前的UA
Pwaerm 发表于 2024-11-28 11:03
打开浏览器的控制台,直接就可以模拟移动设备。试试看
 楼主| dmvip 发表于 2024-11-28 11:11
Pwaerm 发表于 2024-11-28 11:03
打开浏览器的控制台,直接就可以模拟移动设备。试试看

感谢回复,
发现是可以的,
但是 他应该有用检查机制 不到0.几秒 跳转到404 界面,
有什么方式可以解决?
42328669425 发表于 2024-11-28 11:15
如果只想浏览器用那么可以试试这个
User-Agent Switcher and Manager
浏览器扩展里面直接设置
wonder2018 发表于 2024-11-28 11:31
本帖最后由 wonder2018 于 2024-11-28 11:40 编辑
dmvip 发表于 2024-11-28 11:11
感谢回复,
发现是可以的,
但是 他应该有用检查机制 不到0.几秒 跳转到404 界面,

这样的话可以换个思路,找到它检测ua的地方。然后用油猴把相关函数hook掉让它检测不到。如果服务器也有检测就不行了。

根据 #9 的说法,可以在油猴中使用以下方法绕过:

const oldIndexOf = String.prototype.indexOf
String.prototype.indexOf = function (...args) {
    if(args && ['Win','X11','Linux'].includes(args[0])) return -1
    return oldIndexOf.call(this,...args)
}
Yo丨Se7ven 发表于 2024-11-28 11:32
本帖最后由 Yo丨Se7ven 于 2024-11-28 11:49 编辑

看了下代码
[JavaScript] 纯文本查看 复制代码
            var system = {
                win: false,
                mac: false,
                xll: false
            };
            var p = navigator.platform;
            system.win = p.indexOf("Win") == 0;
            system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);
            if (system.win || system.mac || system.xll) {
                window.location.href = "../404.html";
            } else {}

前端是根据navigator.platform判断移动设备,再测试后,发现服务器端(或者cdn)还有user-agent检测。

提供一个现成脚本:https://greasyfork.org/zh-CN/scr ... om-browser-platform

wechat_2024-11-28_114443_918.png
wonder2018 发表于 2024-11-28 12:15
Yo丨Se7ven 发表于 2024-11-28 11:32
看了下代码
[mw_shl_code=javascript,true]
            var system = {

这个脚本介绍里面也写了“此脚本仅针对JavaScript检测有效,对于服务端检测无效。”
应该是浏览器安全策略不允许修改UA了吧,就像不允许修改Refer那样。
网络上很多修改chrome ua的方法都需要打开devTools,那些方法也只在devTools开启的状态下才有用。
既然这样不如直接使用devtools的移动端模拟功能。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-5 06:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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