Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】I built a JSON formatter that never uploads your data

2026年10月08日に「Dev.to」が公開したITニュース「I built a JSON formatter that never uploads your data」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

オンラインのJSONフォーマッターは機密情報流出リスクがある。実際に認証情報などが流出した事例も確認されている。データがブラウザから出ない安全な整形ツール「PasteKit」が開発された。JSON、YAML、SQLなど58形式に対応し、整形、変換、検証を無料・登録不要で行える。

ITニュース解説

システムエンジニアが開発作業で整形されていない長い文字列(API応答、KubernetesのYAML、SQLクエリ、JWTなど)を整形するために、オンラインのフォーマッターツールを使うのは一般的な習慣である。この作業は日常的で無意識に行われるため、入力データがどこへ行くのか、安全なのかを深く考えることは少ない。しかし、この習慣には大きなリスクが潜んでいる。実際に2025年11月には、有名なオンラインフォーマッターサイト2か所で、なんと80,000件以上の過去の入力データがインターネット上に公開された状態で見つかるという深刻なセキュリティ事故が発生した。これらのデータには、ログイン認証情報、クラウドサービスアクセスキー、システム内部の設定情報といった、極めて機密性の高い内容が大量に含まれていた。誰も意図せず、単にJSONを整形したかっただけなのに、企業や個人の重要な情報が漏洩する事態に陥ったのである。この事例は、オンラインツール利用におけるセキュリティ意識の重要性を浮き彫りにした。

このような重大なセキュリティリスクに対応するため、PasteKitという新しいツールが開発された。PasteKitは、フォーマッター機能だけでなく、データの妥当性をチェックするバリデーター機能や、異なる形式に変換するコンバーター機能も備えている。このツールの最大の特徴は、「入力されたデータがユーザーのブラウザから決して外に出ない」という点だ。これにより、ユーザーはオンラインツールに機密情報を入力する際の不安から解放されることを目指している。

PasteKitが「データがアップロードされない」という約束をどのように実現し、それをユーザーが検証できるのかは、その設計に秘密がある。まず、全てのデータ処理はユーザーのブラウザ内部で行われる。具体的には、「Web Worker」と呼ばれる、ブラウザ内で独立して動作する機能を使って、整形や検証などの処理が完結する。これにより、入力データが外部のサーバーに送信されることは一切なく、データを受け取るサーバー側の窓口も存在しない。

次に、「Content Security Policy(CSP)」というセキュリティ機能が厳しく適用されている点も重要である。ウェブページが読み込まれる際にブラウザに送られるCSPは、そのページがどのような通信を行うかを厳しく制限する。PasteKitのCSPは、ネットワークリクエストをサイト自体に対してのみ許可する設定であり、エディタの内容が広告や分析のために使われる外部ホストに送られることもない。ブラウザがこのポリシーを強制するため、開発者ツールで安全性を確認できる。

さらに、PasteKitで整形した内容を共有する際に生成される「シェアリンク」にも工夫がある。共有コンテンツがURLの「#(ハッシュ記号)」以降に記述されるため、ウェブブラウザの仕組み上、その部分はサーバーに送信されない。そのため、シェアリンクを使ってもデータがサーバーにアップロードされる心配はない。また、一度PasteKitにアクセスすれば、その後はインターネットに接続していなくてもオフラインで利用できる点も、データがブラウザ内で完結している証拠である。

PasteKitは単に整形するだけでなく、その品質にもこだわっている。簡易的な処理ではなく、多くの開発者が自分の開発環境で使っているであろうPrettierやgofmt、rustfmtといった「本物の」フォーマッターツールを、「WebAssembly」というブラウザで高速処理を実現する技術を用いて動作させている。これにより、ローカルツールと同等の性能と信頼性がブラウザ上で実現されている。

特にJSONの処理では、データが欠損しない「ロスレスパーサー」を採用している。これにより、巨大な数値も桁落ちすることなく正確に保持される。また、JSONで重複キーがあった場合でも、無視することなくユーザーに問題を報告するため、データの正確性を保つことができる。エラーがあった場合も、単に「エラー」と表示するだけでなく、具体的な行数と列数、そして平易な英語で原因を説明してくれるため、初心者のシステムエンジニアでも問題を特定しやすい。「Norway problem」のような、特定の形式にまつわる注意点も分かりやすく示される。

PasteKitは非常に多機能であり、58種類もの多様なフォーマットに対応している。代表的なものとして、JSON、YAML、SQL、HTML、CSS、JavaScript/TypeScript、Python、Go、Rust、Java、GraphQL、Markdown、Dockerfile、nginx設定ファイルなど、開発で頻繁に利用されるほとんどのファイル形式をカバーしている。

さらに、48種類のコンバーター機能も搭載されており、例えばJSONとYAML、CSV、XMLの間で相互に変換したり、JSONデータからTypeScriptの型定義を自動生成したりすることも可能である。これは異なるシステムやサービス間でデータを受け渡す際に非常に便利だ。

JSONに特化したツールも充実しており、2つのJSONデータを比較する「diff」機能、JSONデータの構造を検証する「スキーマ検証」機能、不完全なJSONを修正する「修復」機能など、JSONを扱う様々な側面をサポートしている。

また、Webサービスの認証によく使われるJWT(JSON Web Token)のデコードとエンコード機能も提供されている。これらはトークンの中身を確認したり、テスト用のトークンを作成したりする際に役立つ。さらに、対応する全てのフォーマットに対して、データの妥当性を検証するバリデーター機能や、ファイルサイズを小さくするミニファイア機能も利用できる。

PasteKitは、このような豊富な機能を無料で提供しており、利用するために特別なサインアップも不要である。また、世界中のユーザーが利用できるよう9つの言語に対応している。開発者はpastekit.devにアクセスし、テキストを貼り付けるだけで、システムが自動的にそのフォーマットを判別し、安全かつ高機能なフォーマット、検証、変換サービスを利用できる。このツールは、セキュリティと利便性、そして品質を高いレベルで両立させており、オンラインフォーマッターの利用における長年の懸念を解消する画期的なソリューションと言えるだろう。

関連コンテンツ

関連IT用語