TallTed
(Ted Thibodeau Jr)
2021 年 4 月 16 日午後 4:36
1
urn:records:test:3 は有効な RFC 3986 URI です。
どのような Markdown を使用しても、Discourse はこれを正しく処理しません。
HTTP URI のようにそのまま貼り付けると、Discourse はそれが URI であることを完全に無視します。例:urn:records:test:3。
\u003c\u003e で囲んで \u003curn:records:test:3\u003e とすると、Discourse は最後の 2 つのセグメントを反転させてしまいます。例:\u003curn:records:test:3\u003e。右クリックしてコピーすると、マウスカーソルの位置によって urn:records または test:3 のどちらかが取得されます。左クリックしても何も起こりません。これは完全に URI として扱われていないためです。
完全なリンク記法、つまり [text over `urn:records:test:3`](urn:records:test:3) のように記述すると、Discourse は右クリックでコピー可能な(しかし依然としてクリック不能な)URI から最後のセグメントを削除してしまいます。実際の動作は text over urn:records:test:3 のように表示され、右クリックでコピーすると urn:records:test が取得されます。また、[`urn:records:test:3`](urn:records:test:3) のように記述した場合、urn:records:test:3 のように表示され、右クリックでコピーするとマウスカーソルの位置によって urn:records:test または 3 が取得されます。
私はすべての有効な URI 構成について網羅的なテストを行っていません。urn:records:test:3 はたまたま実世界のローカルな例として登場しただけです。
「いいね!」 3
Falco
(Falco)
2021 年 4 月 16 日午後 4:46
2
「いいね!」 4
TallTed
(Ted Thibodeau Jr)
2021 年 4 月 16 日午後 5:06
3
それがバグの認識なのか、「はい、それが想定された動作です」と言っているのか判断できません…
詳しく教えていただけますか?
「いいね!」 1
Falco
(Falco)
2021 年 4 月 16 日午後 5:09
4
確かにバグです。これは、scheme:// 形式で始まる href スキームのみを認識する当社のサニタイザーコードが原因です。
「いいね!」 5
maiki
(maiki)
2021 年 8 月 14 日午後 8:44
5
geo URI でこのバグに遭遇しました。形式は geo:36.95733984,-122.0172856 のようになっています。
tel URI については例外処理があるのを見ています:
if (allowedHrefSchemes.includes("tel")) {
extraHrefMatchers.push(new RegExp("^tel://\\\\+?[\\\\w\\\\.\\\\-]+", "i"));
Uniform Resource Identifier (URI) Schemes というページもありますが、例が含まれているため、スキームの確認には List of URI schemes - Wikipedia を使いました。私は、ええと、スキーム名の「接尾辞」、つまり :// に注目しています(あれは何と呼ぶのでしょうか?「スキーム形式」?)。
慎重に見てみると、使われているパターンは以下の 3 つだけのように思えます:
Markdown の記述と href への変換のどこでこの処理が行われているのか、私の頭では追いきれていませんが、もしこの 3 つの形式をチェックする方法が分かれば、管理者が追加する任意のスキームに対応できるはずです。
スキームごとの検証方法についてはわかりません…
私が勝手に名付けた形式のコードネーム:
: 「観察」
:/ 「懐疑的」
:// 「二重の懐疑的」
「いいね!」 1
maiki
(maiki)
2021 年 8 月 29 日午後 9:13
6
Discourse に以下のテキストをコピー&ペーストすると:
安全なメッセージングや通話については、Snikket/XMPP で xmpp:maiki@chat.v2.talkgroup.xyz までご連絡ください。
allowed href schemes に xmpp を追加した状態で以下のように生成されます:
For secure messaging and calls connect with me over Snikket/XMPP at <a href="mailto:xmpp:maiki@chat.v2.talkgroup.xyz" dir="ltr">xmpp:maiki@chat.v2.talkgroup.xyz</a>.
この場合の問題は href="mailto:xmpp:maiki@chat.v2.talkgroup.xyz" です。このバグのユースケースとして記録します。
「いいね!」 2
boospy
2022 年 12 月 15 日午後 7:59
7
これはGEO URIの回避策として機能しますか?開発者ではありません。