「ブラウザが古い」というテストを回避する方法

meta.discourse.org または discover.discourse.com の最新のチェックで、Firefox 115.27.0 などでモダンモードでの表示を回避できることが、uBlock Origin、AdGuard、または AdBlock/AdBlock Plus によって回避できることに気づきました。

! 4つのうちいずれか1つで十分です。
meta.discourse.org##+js(aopw, unsupportedBrowser)
! 安定性は低いですが:
meta.discourse.org##+js(set, unsupportedBrowser, undefined)
meta.discourse.org##+js(set, unsupportedBrowser, false)
meta.discourse.org##+js(set, unsupportedBrowser, '')
! 数十回の表示に一度、set-constant バージョンを使用するとレース条件が発生し、コンテンツブロッカーが失敗する可能性があります。その場合、正しいプレビューが簡易 HTML で有効になります。
  • aopw = abort-on-property-write[1]
  • set = set-constant[2] (AdBlock および ABP では override-property-read)

より安全な方法を使用すべきでしょうか? 現在判明している欠点としては、このトリックでは返信や紹介投稿に挿入された脚注が確実に機能しないことです(CSS(相対色構文の既知の問題以外)または新しすぎる JS を使用している可能性があります)。


  1. Resources Library · gorhill/uBlock Wiki · GitHub #abort-on-property-writejs- ↩︎

  2. Resources Library · gorhill/uBlock Wiki · GitHub #set-constantjs- ↩︎

すみません、もう少し詳しく説明していただけますか。

uBlock Origin のデフォルトのインストールが古いブラウザで当社のチェックをバイパスするということですか?

「いいね!」 1

再現手順 (STR):

  1. Firefox 115.27.0 の公式ストアから uBlock Origin をインストールします。Firefox アドオン用のマニフェスト V2 API には、人々が uBO の古いバージョンに留まる原因となるようなメジャーな新機能はありません(他の広範囲コンテンツブロッカーでも手順は同様です(独自のフィルターのタブは異なる名前の場合があります))。

  2. 設定に移動し、「マイフィルター」タブを開きます。

  3. 4つの提案のいずれかを貼り付けます(4つのフィルターすべてがシンプルであるため、著作権を保護する必要はありません。誰かが私より少なくとも1日前に思いついたものです)。

    • まだ「購読して忘れる」リストや、同様のことを「インストールして忘れる」モードで行う Tampermonkey/Violentmonkey/Greasymonkey 用のスクリプトがないと想定しています(そして、コミュニティまたはボランティアがリストまたはスクリプトの継続的な更新を担当します)。
  4. フォーラムを開くか更新すると、ページは単純化された HTML ではなく「モダン」な外観で読み込まれます(set-constant ベースのバージョンを選択する際に競合状態が発生しない場合)。

    • 前述したように、唯一の目に見える不具合は、脚注が正しく機能しないことです(ウェブサイトのデバッグについては十分な知識がないため、何が欠けているのか判断できません。これは「相対色構文」のテストが失敗した唯一のケースではありません(バブルのサイズはほぼゼロで、単に見えないテキストではなく、相対的に色付けされていれば)。
    • ログインメカニズムにログイン失敗を防ぐための追加のセキュリティ対策があるかどうか、またはアカウントがフォーラム管理者によってロック解除が必要としてマークされているかどうかはテストしていません。
      • フォーラムにブラウザ固有のフィンガープリントテストがなく、ユーザーがログインできないようにしている場合、またはログイン済みユーザー向けの機能も壊れている場合に、必要な Cookie/localStorage/sessionStorage を転送することで追加のログインセキュリティ対策を回避できるかどうかを確認していません。

おそらく、「グローバル変数」を、スクリプトレット/スピンネットの広範囲コンテンツブロッカーから見えない「無名関数」で囲むだけで十分でしょう。その場合、動的な名前(たとえば、CDN レベルで毎日変更される)というアイデアは、インフラストラクチャにとってコストが高すぎます。

単純な HTML システムビューをヘッダーナビゲーションの下の警告バーよりも長い移行期間の代わりに実装した他のフォーラムとしては、forum.fxsound.com があり、そこでも apow/set-constant は今のところ機能します。