2011-12-23 5 views
-2

ローカルサーバーからJSONデータを取得していて、データをHTMLでページに出力する前に、そのデータをどの機能で実行する必要があるのか​​不思議でした。すべてが安全であることを保証し、引用符のような特殊文字が適切に処理されるようにします。JSONデータをJavaScript経由でページに挿入する前に、これを行う必要がありますか?

ありがとうございます!

+0

どのようなデータが返されますか? HTMLコンテンツですか?消毒されたテキスト? JSコードを実行するには?未知の? – Kato

+1

詳細情報が必要です..正確には「安全」とはどういう意味ですか?サーバーから返されるデータは何ですか?どのように解析する必要がありますか? –

+0

@Kato JSON、彼は言う.. – redShadow

答えて

3

正規のJSONを使用していて、実際のJSONパーサーでeval()を使用していない場合、JSONは安全です。実行可能コードを含むことはできず、データ定義のみを含むことができます。

あなたのクライアントコードでは、解析されたJSONを取得して、データに十分な健全性チェックを実行して、それが意味をなさないことを確認し、実行したい特定のテストに合格することはできますが、実際のJSONパーサーと実際のJSONパーサーを使用している場合、コードインジェクションについて心配する必要はありません。これがJSONを使用する利点の1つです。これはデータのみの形式です。

サーバーをハイジャックして偽のデータを返すことが心配な場合は、httpsを使用してエンドポイントを保護し、クライアントで明確な正常性チェックを実行できます。

+0

ダウンロードやJSON解析では実行できませんが、一度ドキュメントにコンテンツを挿入しようとすると、スクリプトタグやその他の新機能が含まれている可能性があります。 – Kato

+0

データはデータです。 JSONをjavascriptオブジェクト形式に解析しても、脆弱性は発生しません(これがJSON形式とパーサーに組み込まれた安全性の要点です)。私が答えて言ったように、あなたが特定のものから守りたいと思うデータを使って何かをしているのであれば、そのことについて健全性チェックを行うことができますが、それは非常にアプリケーション特有であり、OPにはJSONデータを使って何をやっているかに関する情報。 – jfriend00

+0

あなたの答えと説明に感謝します。コードはphp_encodeによって実行されているので、私は良いと思います。 – Zoolander

関連する問題