跳转到内容

维基百科:互助客栈/技术

添加话题
维基百科,自由的百科全书

这是本页的一个历史版本,由101.226.196.139留言2019年5月19日 (日) 19:59 修改火狐浏览器关于SNI的部分编辑。这可能和当前版本存在着巨大的差异。


101.226.196.139在话题“修改火狐浏览器关于SNI的部分”中的最新留言:6年前

本頁用作讨论在编辑时遇到的技术问题;發表問題或討論前,請先參閱常見問題解答帮助信息MediaWiki基本問題及搜索舊討論記錄。另請注意:

請注重礼仪、遵守方針與指引,一般問題請至互助客棧其他區知识问答提出,留言后请务必签名(点击 )。


發表前請先搜索存档,參考舊討論中的内容可節省您的時間。
公告欄
# 💭 話題 💬 👥 🙋 最新發言 🕒 (UTC+8)
1 本地安全投票测试 7 4 Ericliu1912 2025-05-05 21:08
2 就辽宁省2019年以来行政区划合并维护请求帮助。 3 2 Yugaminena 2025-03-10 11:14
3 視覺化編輯器ilh系模板顯示bug 1 1 Sohryu Asuka Langley Not Shikinami 2025-03-05 19:08
4 有關失效連結 10 5 Ericliu1912 2025-03-13 20:19
5 視覺化編輯器加入T:NoteTag bug 7 3 JuneAugust 2025-05-07 08:50
6 介面顯示 12 6 Shizhao 2025-05-30 11:09
7 Mbox系列模板邊框集體消失 1 1 Jimmy-bot 2025-06-03 08:14
8 請求盡快處理Lang/data模組的編輯請求 3 2 Sanmosa 2025-05-27 11:30
9 WP:TW等工具的最低硬件标准是? 11 6 1F616EMO 2025-05-27 00:11
10 请求协助处理Template talk:AV女優#模板参数调整提议的技术问题 4 2 银色雪莉 2025-05-27 01:59
11 有没有什么脚本能将中文维基百科的默认字体换回Windows的原生字体 12 6 暁月凛奈 2025-05-28 17:56
12 2025年第22期技術新聞 1 1 MediaWiki message delivery 2025-05-27 04:04
13 源代码编辑器里的签名按钮,应该添加一个空格 2 2 Ericliu1912 2025-05-31 22:12
14 縮圖修改功能沒有改動 1 1 Saimmx 2025-05-28 00:54
15 請求協助張貼「請求移動條目:馬康偉」至受保護頁面 2 2 Sakurase 2025-05-28 02:04
16 将一个分类及其子分类中所包含的全部条目陈列出来的简单方法? 6 4 Zhenqinli 2025-05-31 12:03
17 mediawiki:edittools损坏 3 3 ItsLiana 2025-06-03 17:06
18 介面顯示(二) 11 5 Miyakoo 2025-06-01 10:48
19 介面顯示(三) 2 2 Shizhao 2025-06-03 10:35
20 詭異!我的個人頁出現沒有編輯紀錄的改變 7 3 For Each element In group ... Next 2025-06-01 16:03
21 2025年第23期技術新聞 2 2 Shizhao 2025-06-03 10:40
發言更新圖例
  • 最近一小時內
  • 最近一日內
  • 一週內
  • 一個月內
  • 逾一個月
特殊狀態
已移動至其他頁面
或完成討論之議題
手動設定
當列表出現異常時,
請先檢查設定是否有誤

正在廣泛徵求意見的議題

議題清單

以下討論需要社群廣泛關注:重新整理維基百科技術議題與模板

Template talk:作品名稱 § 不觉得这模版很多余吗?

为啥要刁难读者、把各种译名看完才能读简介?--Akishima Yuka留言) 2024年12月28日 (六) 12:29 (UTC)

Template talk:分类重定向 § 編輯請求 2024-05-04


模板:分类重定向在維基共享資源的對應版本c:Template:Category redirect能將尚未清空的已重新導向分類自動歸入重新導向目標,效果可見c:Category:Non-empty category redirects下的分類。這種設計可以避免分類移動後未及時調整而形成空分類。本站是否可引入?--紺野夢人 2025年5月4日 (日) 02:17 (UTC)

Template talk:Why § 请求让本模板实现类似的为文字添加底色的功能


比如{{来源请求|XX}}可以实现XX[來源請求]这样的显示。但本模板目前不行。@1F616EMO ——自由雨日🌧️❄️ 2025年5月18日 (日) 09:01 (UTC)

MediaWiki talk:Gadget-MarkRights.css § 編輯請求 2025-02-21

有鉴于过滤器编辑者用户组已经正式部署,在此建议使用同管理员颜色一样的“滤”标记过滤器编辑者。这样,相较于“编”,可以使用户更好理解标记含义。Iming 彼女の愛は、甘くて痛い。 2025年5月30日 (五) 18:01 (UTC)

Module talk:Citation/CS1/Configuration § 請求從英維移植deviated參數


Wikipedia talk:列明来源 § 強制列明原地更新的來源的存取時間的相關討論,請求移植英維的|url-status=deviated參數,即在446行加入deviated。據英維說明文件,此參數的目的是標記依然存在但已經無法支持條目內容的已存檔網頁來源。副知@August.C自由雨日Kcx36。--1F616EMO喵留言回覆請ping) 2025年5月31日 (六) 11:38 (UTC)
Template talk:藝人 § 建議全部字段盡量調用維基數據

能夠調用維基數據的字段都適宜調用維基數據,以免逐一瑣碎更新。可複刻{{Infobox person/Wikidata}}或不知爲何未經落實的{{藝人/Wikidata}}。另外,{{藝人/Wikidata}}之下「圖片」欄目留空會阻攔維基數據所填圖片顯示,僅若「圖片」一欄完全刪除方可顯示維基數據所填圖片;未查其他欄目是否類似,移植有關模板數據需要注意。--— Gohan 2025年6月2日 (一) 08:51 (UTC)

在首頁加入農曆日期

12年前,中文維基百科曾經有用戶提議並獲得大多數贊同在首頁上加上農曆日期,但貌似當時限於技術原因而未能實現,請問現在在維基百科上的工具可以實現這個要求嗎? ——C933103(留言) 2019年5月3日 (五) 09:11 (UTC)回复

魔法連結?

如題,[1]-- Sunny00217 - 2019年5月4日 (六) 00:38 (UTC)回复

@Sunny00217 已修复。-- tang891228 留⁠言 2019年5月12日 (日) 15:30 (UTC)回复

嚴重例外類型?

  • 在檢視薩塞克斯公爵夫人梅根條目的最新一次編輯時發現,使用"比較被選版本"功能,只要其中一筆是最新版本(由User:SSYoung編輯),另外畢比不管使用哪一個舊版本,都會跳出這個錯誤資訊:[XNOTogpAMEkAAIRoR-UAAABQ] 2019-05-09 02:42:42: 嚴重例外類型 "Wikimedia\Assert\ParameterTypeException"。想請問這是哪方面的問題?(檢視同一個用戶的其他編輯並無問題,目前我只有在這個條目發現這問題)風鳴留言2019年5月9日 (四) 02:44 (UTC)回复
可重现。建议提报phab:--百無一用是書生 () 2019年5月9日 (四) 02:56 (UTC)回复
我也见过类似的。([2])——路过围观的Sakamotosan | 避免做作,免敬 2019年5月11日 (六) 09:18 (UTC)回复
遇到同样的问题[3],看来不是个例--Leon3289留言2019年5月13日 (一) 13:54 (UTC)回复

Multilingual Shared Templates and Modules

Hello zh-wiki community! (请帮助翻译至您的语言)

I recently organized a project to share templates and modules between wikis. It allows modules and templates to be “language-neutral”, and store all text translations on Commons. This means that it is enough to copy/paste a template without any changes, and update the translations separately. If someone fixes a bug or adds a new feature in the original module, you can copy/paste it again without any translation work. My bot DiBabelYurikBot can help with copying. This way users can spend more time on content, and less time on updating and copying templates. Please see project page for details and ask questions on talk page.

P.S. I am currently running for the Wikimedia board, focusing on content and support of multi-language communities. If you liked my projects like maps, graphs, or this one, I will be happy to receive your support. (any registered user group can vote). Thank you! --Yurik (🗨️) 2019年5月11日 (六) 07:50 (UTC)回复
@Yurik This is an interesting middle ground and a great way to build templates. But Chinese Wikipedia has already developed a very different sets of templates and maintained by people. We have around 2k7 modules and it would be interesting to connect with other global wikiprojects. Nevertheless, due to the complexity of your proposal, I would like to work with you for a demo firstly. --Fantasticfears留言2019年5月17日 (五) 21:43 (UTC)回复

字词误转换问题

在用大陆简体查看汶川大地震条目时发现,公共转换组“人物译名”把“占”转换为“吉姆”,导致出现了很多误转换的情况。比如“四川省占总损失的91.3%”变成了“四川省吉姆总损失的91.3%”。这种问题在添加公共转换组,或者在公共转换组里添加新字词时很难发现。请问有什么好的避免方法吗?--蓝色☆枫叶拉呱 2019年5月12日 (日) 03:33 (UTC)回复

单字不宜放入转换组,容易误转换。可以考虑单向转换。@Wilson Wong123[4]--YFdyh000留言2019年5月12日 (日) 12:47 (UTC)回复

2019年5月14日 (二) 00:49 (UTC)

模板展開限制

草地貪夜蛾條目的演化一節,好像是因為{{Clade}}多層套疊的關係,有兩個跨語言連結模板無法正常顯示,有沒有朋友知道怎麼解決呢?非常感謝!--Wikimycota~🍄跬步千里 2019年5月17日 (五) 18:01 (UTC)回复

好像展开统计上有一些毛病,可能会令扩展字节数虚高。——路过围观的Sakamotosan | 避免做作,免敬 2019年5月18日 (六) 00:47 (UTC)回复
  • view-source:https://zh.wikipedia.org/wiki/%E8%8D%89%E5%9C%B0%E8%B2%AA%E5%A4%9C%E8%9B%BE 顯示:
100.00% 1941.213      1 -total
 87.97% 1707.710     29 Template:Clade
 32.33%  627.641      1 Template:Speciesbox
 32.01%  621.366      1 Template:Taxobox/core
 22.94%  445.259      1 Template:Reflist
 19.14%  371.598      1 Template:Taxobox/taxonomy
 13.81%  268.060      1 Template:Taxonbar
  9.99%  193.894     17 Template:Cite_journal
  9.96%  193.379    149 Template:Taxon_info
  9.82%  190.603     56 Template:Link-en

-- Sunny00217 - 2019年5月19日 (日) 09:59 (UTC)回复

修改火狐浏览器关于SNI的部分

以下是火狐浏览器源代码中关于SNI的ClientHello语句生成函数,是一个关键性函数,通过浏览器发送的任何SNI请求都必须经过此函数生成ClientHello。这个函数来自于火狐浏览器源代码文件系统下的security/nss/lib/ssl/sslext3.c文件:

/* Format an SNI extension, using the name from the socket's URL,
 * unless that name is a dotted decimal string.
 * Used by client and server.
 */
PRInt32
ssl3_SendServerNameXtn(sslSocket * ss, PRBool append,
                       PRUint32 maxBytes)
{
    SECStatus rv;
    if (!ss)
        return 0;
    if (!ss->sec.isServer) {
        PRUint32 len;
        PRNetAddr netAddr;

        /* must have a hostname */
        if (!ss->url || !ss->url[0])
            return 0;
        /* must not be an IPv4 or IPv6 address */
        if (PR_SUCCESS == PR_StringToNetAddr(ss->url, &netAddr)) {
            /* is an IP address (v4 or v6) */
            return 0;
        }
        len  = PORT_Strlen(ss->url);
        if (append && maxBytes >= len + 9) {
            /* extension_type */
            rv = ssl3_AppendHandshakeNumber(ss, ssl_server_name_xtn, 2);
            if (rv != SECSuccess) return -1;
            /* length of extension_data */
            rv = ssl3_AppendHandshakeNumber(ss, len + 5, 2);
            if (rv != SECSuccess) return -1;
            /* length of server_name_list */
            rv = ssl3_AppendHandshakeNumber(ss, len + 3, 2);
            if (rv != SECSuccess) return -1;
            /* Name Type (sni_host_name) */
            rv = ssl3_AppendHandshake(ss,       "\0",    1);
            if (rv != SECSuccess) return -1;
            /* HostName (length and value) */
            rv = ssl3_AppendHandshakeVariable(ss, (PRUint8 *)ss->url, len, 2);
            if (rv != SECSuccess) return -1;
            if (!ss->sec.isServer) {
                TLSExtensionData *xtnData = &ss->xtnData;
                xtnData->advertised[xtnData->numAdvertised++] =
                    ssl_server_name_xtn;
            }
        }
        return len + 9;
    }
    /* Server side */
    if (append && maxBytes >= 4) {
        rv = ssl3_AppendHandshakeNumber(ss, ssl_server_name_xtn, 2);
        if (rv != SECSuccess)  return -1;
        /* length of extension_data */
        rv = ssl3_AppendHandshakeNumber(ss, 0, 2);
        if (rv != SECSuccess) return -1;
    }
    return 4;
}

其中关键性的代码为如下两行:

        len  = PORT_Strlen(ss->url);

以及:

            rv = ssl3_AppendHandshakeVariable(ss, (PRUint8 *)ss->url, len, 2);

其中ss->url是目标网站域名,也就是SNI的域名(也就是唯一可以被墙看见的那个域名)。为只读变量,不能修改(而且也不应该被修改,因为后续收到安全证书以后必须要能对上安全证书里的域名列表里的某一个域名,而且再后续进行HTTPS GET操作时就必须要有正确的域名才能取得正确的网页和内容)。

但是(我要说但是了!)我们可以把在以上两行里的ss->url完全替换成【另外】的一个string literal(也就是所谓的“hard-coding SNI”)。比如以下两种修改:

        len  = PORT_Strlen("wikimedia.org\0");

            rv = ssl3_AppendHandshakeVariable(ss, (PRUint8 *)"wikimedia.org\0", len, 2);
        len  = PORT_Strlen("\0");

            rv = ssl3_AppendHandshakeVariable(ss, (PRUint8 *)"\0", len, 2);

都能通过编译器编译,生成火狐浏览器的目标文件(object files)以及可执行二进制文件(binary executable)。我对以上两种情况分别进行了实验,有以下发现:

  • 如果hard-code空字符串\0,那么所有HTTPS连接一律报错,没有例外,也就是说如此编译出来的浏览器是完全废掉了。(这种情况对应于“SNI拔除”,也就是试图把现代火狐浏览器恢复到火狐浏览器1.0时代不发送SNI信息,现在看来这种方法完全行不通了)
  • 如果hard-code维基媒体总站域名,那么在我测试的网站中,除了Cloudflare网站不能正常工作,其它网站都能正常工作。特别有趣的是对谷歌发送维基媒体总站域名SNI也能得到正确的谷歌证书,成功打开google.com,而浏览器不会报错。(这种情况对应于域名前置,当然都是维基媒体的域名,所以应该也无所谓,不存在欺骗性质,和被亚马逊和谷歌禁止的那种域名前置行为有本质上的区别)

甚至可以做出如下修改:

char url[500];
scanf("%s", url);

        len  = PORT_Strlen(url);

            rv = ssl3_AppendHandshakeVariable(ss, (PRUint8 *)url, len, 2);

当然,以上修改后的火狐浏览器需要从xterm终端里启动,否则没法输入字符串。我个人从未做出或者测试过以上修改。但是我相信以上的修改是最最灵活的,因为允许用户在运行火狐浏览器的时候自行键入想要送出的明文SNI域名。

很可惜,我身在墙外,所以完全不知道这些修改能不能规避墙的SNI重置封锁。但是如果墙内朋友证实这些修改是可行的话,那么这将是非常powerful的修改。这些修改将允许墙内网友浏览维基百科直到墙SNI封杀【最后一个】维基媒体域名(现在除了维基百科和维基新闻以外基本上所有其它维基媒体域名都未被墙封杀)。而且墙内网友可以直接打开维基百科,而不需要先打开比如维基文库,然后利用HTTPS信道余热来打开维基百科。

不爱思考得猪留言2019年5月17日 (五) 20:44 (UTC)回复

会编译,看得懂代码的人为什么需要这个...--Fantasticfears留言2019年5月17日 (五) 21:34 (UTC)回复
其实说实话这是一个比较针对维基媒体的特定修改,而且可能也用不了多久了。墙不知道为什么没有对维基媒体进行全面封杀,而是只封杀了维基新闻和维基百科两类域名。以上的修改就是利用剩下的、未被封杀的维基媒体域名进行一种类似域名前置的操作,使得墙内用户在不翻墙的情况下依旧可以使用维基百科。但是说实话我个人是不太看好这个hack的,因为我认为墙应该即将封杀所有维基媒体域名了,甚至可能会对维基媒体的服务器群进行彻底IP封杀。不爱思考得猪留言2019年5月17日 (五) 23:20 (UTC)回复
其实就是,一种是SNI拔除,一种是类似域前置的方法。曾经有讨论过,不过需要定制化的客户端,只能适合硬核玩法。至于域前置的做法,好像有几家CDN不再支持了,为了防止Telegram等利用。——路过围观的Sakamotosan | 避免做作,免敬 2019年5月18日 (六) 00:52 (UTC)回复

Success!!! This is 不爱思考得猪. I have tunneled back inside the Great Firewall of China using PureVPN's Shanghai server. I have tested and verified that the above changes I have made to Firefox's source code really worked (together with relevant changes to /etc/hosts). Right now I am accessing zh.wikipedia.org with SNI wikimedia.org. I do apologize for posting this exciting update in English as my Firefox testing environment is Ubuntu Linux, so I cannot input Chinese. Look at my signature and you can see that the IP address is located in Shanghai. I am so happy right now! 101.226.196.139留言2019年5月19日 (日) 19:58 (UTC)回复

讨论页无法解除Flow

在参数设置里解除了Flow勾选,但是讨论页仍是Flow,内容也没有被存档。安提洛夫斯基 2019年5月18日 (六) 09:35 (UTC)回复

IAbot疑似故障?

此笔编辑中,IAbot将title填写为“存档副本”,实际上应当为“Release notes — Anaconda 2.0 documentation”(取自互联网档案馆的标题)。--泡泡小号028留言2019年5月19日 (日) 09:25 (UTC)回复