0

Django で Python アプリケーションを作成し、Python の標準jsonライブラリを使用して JSON との間でオブジェクトをシリアライズしています。

私はその線に沿って何かを聞いたことがあります

シリアライザー/デシリアライザー/パーサーは、アプリケーションに対する潜在的なセキュリティ脅威です

これはサーバー側で本当に真実ですか? 誰かが改ざんされた JSON をインスタンスに送信し、リモート コード実行権限を取得することを恐れる必要はありますか? 私の場合(値をintに変換し、すべてのデータをMongoDBに保存する)、(潜在的に)XSSまたはSQLインジェクション以外のセキュリティ上の脅威はないと思います。

クライアントからの JSON データを解析するこれらの行に沿って妄想する必要がありますか?

4

6 に答える 6

3

JSON データには、文字列、数値、ブール値、null、オブジェクト、リストなどの基本的な型のみを含めることができます。これは、適切にフォーマットされた JSON データがアプリケーションにまったくリスクをもたらさないことを意味しますeval()

したがって、有効な JSON が問題にならない場合、「クライアントは、Python の json モジュールによって処理されたときにセキュリティ リスクをもたらす無効なデータを送信できますか」という問題になります。ここでの答えもノーです。Python の json モジュールは、恐ろしい副作用なしで、無効な json データに対して確実に ValueError を発生させます。

于 2013-11-08T23:18:06.883 に答える
1

一般に、その宣伝文句は真実ですが、パーサーとその開発者がセキュリティをどの程度有効/意識しているかによって異なります。モジュール自体はjson長い間精査されており、サーバーのセキュリティを損なうようなことは何もしていません.

于 2013-11-08T23:12:43.907 に答える
0

はい。あなたは妄想的であるべきです。パーサーが信頼されているからといって、失敗できないわけではありません。

于 2013-11-08T23:29:26.643 に答える
0

パーサーが内部で何をするかは決してわかりません。解析自体がセキュリティ上の脅威になる可能性がありますが、開発者はそれを回避するために最善を尽くしています。

長い間開発されてきた安定したライブラリの場合、危険はほとんどありません。

于 2013-11-08T23:15:01.903 に答える
0

まあ...ユーザー入力を取得することは、特によく知らない外部ライブラリを使用する場合に、潜在的に危険です。たとえば、不十分に実装されたクイックソート アルゴリズムがサービス拒否攻撃に使用される方法を示すのは簡単です。それは、並べ替えアルゴリズムが危険であることを意味しますか? いいえ。これは、実装が不十分であると危険になる可能性があることを意味します。

明らかに、危険性と利点を見積もり、それに基づいて何を採用するかを選択する必要があります。率直に言って、サード パーティの json 実装を使用する潜在的なリスクがセキュリティ上の問題であるようなプロジェクトに取り組んでいる場合、Stack Overflow でそれについて質問することはないでしょう。

于 2013-11-08T23:31:12.563 に答える
0

シリアライザー/デシリアライザー/パーサーは、アプリケーションに対する潜在的なセキュリティ脅威です

サーバー側でも、自分でセラライザー/デシリアライザー/パーサーを書いている限りはそうです。

標準ライブラリを使用している限り、そのプログラマーを信頼できます。

于 2013-11-08T23:14:54.763 に答える