Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
OWASP__json-sanitizer_CVE-2020-13973_1-2-0 — Javaライブラリ。不正な形式のJSONライクなコンテンツを標準準拠で安全なJSONに変換し、コードインジェクションを防止し、HTML/XMLコンテキストへの埋め込みを保証します。 | Kitploit
ツール/GitHubGitHub/shoucheng3/owasp__json-sanitizer_cve-2020-13973_1-2-0
汎用ユーティリティ静的分析暗号化/復号化ツール脆弱性分析コード分析ウェブセキュリティ
GitHubshoucheng3/owasp__json-sanitizer_cve-2020-13973_1-2-0

OWASP__json-sanitizer_CVE-2020-13973_1-2-0

Javaライブラリ。不正な形式のJSONライクなコンテンツを標準準拠で安全なJSONに変換し、コードインジェクションを防止し、HTML/XMLコンテキストへの埋め込みを保証します。

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
リポジトリを見る
461年前未レビュー
共有

json-sanitizer

JSONのようなコンテンツが与えられた場合、JSON Sanitizerはそれを有効なJSONに変換します。

はじめに - 連絡先

これはデータパイプラインの両端に配置することで、Postelの原則を満たすのに役立ちます:

自分が行うことは保守的に、他人から受け入れることは寛容に

他者からのJSONのようなコンテンツに適用すると、使用する任意のパーサーを満たす、整形式のJSONを生成します。

送信前の自分の出力に適用すると、エンコーディングの軽微な誤りを修正し、JSONをHTMLやXMLに埋め込みやすくします。

動機

Architecture

多くのアプリケーションは、アドホックな方法でJSON出力を生成する大量のコードを持っています。

多くの場合、これらの出力はすべて、ネットワークを介して送信される前に、少量のフレームワークコードを通過します。この少量のフレームワークコードは、このライブラリを使用して、アドホックな出力が標準に準拠し、JavaScriptのeval演算子のような(過度に)強力なデシリアライザに渡しても安全であることを確認できます。

アプリケーションはまた、さまざまなソースからJSONを受信するWebサービスAPIを持つことがよくあります。このJSONがアドホックな方法で作成された場合、このライブラリは解析しやすい形に整形できます。

このライブラリをリクエストとレスポンスを送受信するコードに組み込むことで、ソフトウェアアーキテクトがシステム全体のセキュリティと整形式性の保証を確保するのに役立ちます。

入力

サニタイザーはJSONのようなコンテンツを受け取り、JSのevalと同様に解釈します。具体的には、以下の非標準的な構文を処理します。

構文方針
'...'シングルクォートで囲まれた文字列はJSON文字列に変換されます。
\xAB16進エスケープはJSONユニコードエスケープに変換されます。
\0128進エスケープはJSONユニコードエスケープに変換されます。
0xAB16進整数リテラルはJSON10進数に変換されます。
0128進整数リテラルはJSON10進数に変換されます。
+.510進数はJSONのより厳格な形式に強制されます。
[0,,2]配列の省略はnullで埋められます。
[1,2,3,]末尾のカンマは削除されます。
{foo:"bar"}引用符なしのプロパティ名は引用符で囲まれます。
//commentsJS形式の行コメントとブロックコメントは削除されます。
(...)グループ化の括弧は削除されます。

サニタイザーは、欠落した句読点、終わりの引用符、不一致または欠落した閉じ括弧を修正します。入力に空白のみが含まれている場合は、有効なJSON文字列nullが代わりに使用されます。

出力

出力は、RFC 4627で定義された整形式のJSONです。出力は以下の追加のプロパティを満たします:

  • 出力には(大文字小文字を区別せずに)部分文字列"</script"が含まれないため、追加のエンコードなしでHTMLスクリプト要素内に埋め込むことができます。
  • 出力には部分文字列"]]>"が含まれないため、追加のエンコードなしでXML CDATAセクション内に埋め込むことができます。
  • 出力は有効なJavaScript式であるため、JavaScriptのeval組み込み関数(括弧で囲んだ後)またはJSON.parseで解析できます。具体的には、出力には埋め込まれたJS改行(U+2028段落区切りまたはU+2029行区切り)を含む文字列リテラルは含まれません。
  • 出力には、エスケープされていないXMLで許可されている有効なUnicode スカラー値のみが含まれ(孤立したUTF-16サロゲートはありません)。

セキュリティ

出力は整形式のJSONであるため、evalに渡しても副作用や自由変数はなく、コードインジェクションベクターでも秘密の漏洩ベクターでもありません。

このライブラリは、JSON文字列→JavaScriptオブジェクトのフェーズが副作用を持たず、自由変数を解決しないことのみを保証し、その後のクライアントサイドコードが結果のJavaScriptオブジェクトをどのように解釈するかを制御できません。したがって、クライアントサイドコードが攻撃者によって制御された解析データの一部を取得し、それをevalやinnerHTMLのような強力なインタプリタに再度渡す場合、そのクライアントサイドコードは意図しない副作用を受ける可能性があります。

var myValue = eval(sanitizedJsonString);  // safe
var myEmbeddedValue = eval(myValue.foo);  // possibly unsafe

さらに、JSONのサニタイズでは、混乱した代理攻撃からアプリケーションを保護することはできません

var myValue = JSON.parse(sanitizedJsonString);
addToAdminstratorsGroup(myValue.propertyFromUntrustedSource);

パフォーマンス

sanitizeメソッドは、入力がすでに上記のプロパティを満たす有効なJSONである場合、新しいバッファを割り当てずに入力文字列を返します。したがって、通常は整形式の入力に使用すると、メモリオーバーヘッドは最小限です。

sanitizeメソッドの時間計算量はO(n)で、nはUTF-16コードユニットでの入力の長さです。

ツールをダウンロード