2 ポイント 投稿者 GN⁺ 17 일 전 | 1件のコメント | WhatsAppで共有
  • ChromeでJSONデータを構造的に可視化していた拡張機能が、今後はオープンソースとして維持されなくなる
  • プロジェクトはクローズドな商用モデルへ移行し、新バージョンはプレミアム機能を備えたAPI探索ツールとして開発中
  • 既存ユーザー向けにJSON Formatter Classicが最終オープンソース版として公開され、ローカル専用フォーマッタとしてのみ提供される
  • Classic版は更新が終了し、Chrome Web Storeまたはソースコードからインストール可能
  • 今回の移行により、広告コードの挿入や信頼性低下への懸念が提起されている

プロジェクト終了と移行のお知らせ

  • JSON Formatterはオープンソース開発を終了し、クローズドな商用モデルへ移行
    • 新バージョンはプレミアム機能を備えたAPI探索ツールとして開発中
  • 既存のオープンソース利用者向けに、最終オープンソース版JSON Formatter Classicとして公開
    • Chrome Web Storeからインストール可能で、ローカル専用のJSONフォーマット拡張として維持
    • 今後更新は提供されない

JSON Formatter の概要

  • ChromeブラウザでJSON APIレスポンスを構造的に可視化する拡張機能
  • 長いJSONページでも高速な処理性能を提供し、Dark Modeシンタックスハイライトをサポート
  • ツリー構造の折りたたみ/展開インデントガイドクリック可能なURL機能を含む
  • JSONではないページでは1ミリ秒未満の性能影響しか発生しない
  • Raw / Parsed JSON切り替えボタンを提供し、パース済みJSONはグローバル変数 json としてコンソールからアクセス可能

1件のコメント

 
GN⁺ 17 일 전
Hacker Newsの意見
  • 今日 Chrome Inspector で give-freely-root-bcjindcccaagfpapjjmafapmmgkkhgoa という怪しい要素を見つけた。
    確認してみると、人気のオープンソース JSON Formatter 拡張機能 が1か月ほど前に クローズドソース へ移行し、決済ページに 広告コードと位置追跡 を挿入し始めていた。
    もうブラウザー拡張のマーケットプレイス自体が失敗した実験のように感じられる。いっそ自分で JSON フォーマッターを作って使うほうがいいと思う

    • Google のポリシーでは広告を 挿入するのは許されるのに、削除するのは禁止 されているのが皮肉だ
    • App Store の セキュリティフィルタリング機能 には依然として一定の価値がある。完璧ではないが、まったく統制のない環境よりはましだと思う
    • 既存ユーザーを欺いて広告を挿入したのは本当に 非倫理的な行為 だと思う。クローズドな商用版へ移行するのは構わないが、事前告知なしに広告を入れるのは一線を越えている
    • こうした行為は公に 批判と責任追及 を受けるべきだ。もちろん半分冗談だが、こういう「売り渡し」に社会的制裁があるのも必要だと思う
    • どうやってそんな怪しい要素を見つけたのか気になる。普段から DOM をよく見るタイプなのか聞いてみたい
  • この件の当事者である Callum Locke が実在の人物だという点が興味深い。
    昔はこういう「実名の開発者」が信頼のシグナルだったが、今では必ずしもそうではないことを示している

    • ユーザー数が数百万人規模になると 売却の誘惑 はかなり大きい。自分も30万人規模の拡張機能を運営しているが、ここ数年で受けた提案だけでも相当な金額だった。
      関連する議論は HoverZoom GitHub discussion にある
    • 人気拡張機能を持つ開発者なら、こうした 誘惑 を避けるのが難しいことはよく分かる
    • ブラウザー拡張のメンテナーにはしばしば 怪しい提案メール が届く。今回の件もそうした提案に乗ってしまった事例に見える
    • いずれにせよ、Callum Locke は今回の件で 評判を完全に失ったも同然
  • 2年前に作者本人が残した HNコメント を見ると、
    自分が JSON Formatter の作者であり、ユーザーデータを送信したり売ったりすることは絶対にない と誓っていた。
    何度も高額の買収提案を受けたが、名誉を守るために断った と述べていた

    • 「英雄として死ぬか、長く生きて悪役になるか」という言葉を思い出す
    • 今では 自分で道具を作るコストがほぼゼロ なので、わざわざ他人を信頼する理由はないと思う
    • 結局こうした約束も 販売戦略 にすぎなかったのかもしれない。オープンソースにはきちんとした 持続可能な資金構造 が必要だ
    • それでも彼が最後まで原則を守っていたなら立派だったと思う
  • 作者が残した Chrome Web Store レビューへの返信 によると、
    「Give Freely」はスパイウェアではなく 寄付のためのアフィリエイトリンクシステム だと説明している。
    ユーザーが提携ストアで決済する際にクリックすると、収益の一部が Code.org のような団体に寄付される仕組みだという。
    個人情報や閲覧データは収集しておらず、望まなければ 設定から完全に無効化 できると強調している。
    「Give Freely」のコードがない JSON Formatter Classic バージョン も提供中とのこと

    • 意図はどうあれ 実装の仕方が未熟 で、ブラウザー拡張の配布モデルにおける セキュリティ上の脆弱性 を露呈した事例だと思う
  • 核心的な問題は 自動更新という思想 にあると思う。
    アップデートはセキュリティ脆弱性を修正する一方で、ユーザーが望まない変更や サプライチェーン攻撃 のリスクも生む。
    特に個人開発者の拡張機能は 自動更新を無効にすべき だ。しかし Chrome はそれを許していない。
    Google は広告中心の哲学のせいで、こうした アドウェア化 を問題として認識できていない。
    Firefox は少しましだが、独自ビルドした拡張機能を恒久的にインストールできない点が惜しい

    • Firefox でもまったく不可能というわけではない。about:debugging で一時的に読み込むか、xpinstall.signatures.required を無効にすれば可能だ
    • 個人的には、ローカルで実行するすべてのプログラムは 自動更新禁止 が原則だ。そうでなければ、社会的に許容された RCE バックドア にすぎない
    • JSON Formatter のように機能が固定された拡張機能は、インストール直後に 更新を無効化 するのが最善だ。
      ただし uBlock のようにフィルターリストを定期的に更新する拡張機能は例外かもしれない
  • Chrome Web Store の バイナリと公開ソースの不一致 が最大の問題だと思う。
    ストアは開発者がアップロードしたパッケージをそのまま信頼しており、実際の公開コードと一致しているかを検証していない。
    自分でもいくつかの拡張機能を 再現ビルド してみたが、ほとんど一致しなかった。
    Firefox AMO はソース提出後に クリーンビルドとの比較(diff) を行うが、Chrome はそうではない。
    再現可能なビルドと署名付きコミットの連携 がなければ、悪意あるコード挿入を事前に検知する方法はない

  • Google は Manifest V3 を強引に推し進めながら、こうした問題は放置している。
    その一方で Blaze VPN, Safum VPN, Snap VPN のような悪質な拡張機能に「Featured」バッジまで付けている。
    これらは過去に悪質な拡張機能を作った PDF Toolbox グループの コピー品 で、実際にはまともに動作すらしない。
    Chrome Web Store の 検証体制がひどい ことを示す事例だ

  • 同じことは ModHeader 拡張機能でも起きた。
    ModHeader リンク
    Google 検索結果ごとに広告を挿入し始め、通報したが今もストアに残っている

  • 1週間前にこの問題に気づき、自分が気に入っていた機能を集めて 新しい JSON フォーマッター を作った。
    GitHub - JSON Alexander

    • 名前が本当にかっこいいと褒められていた
  • 今回の件は インストール済み拡張機能を整理する良いきっかけ になった。
    本当に必要なものだけ残して、残りは削除するつもりだ