私が質問する理由は、私たちのベンダーに、彼らが作成する ASP.NET UI コンポーネントで MS AntiXSS ライブラリを使用する必要があることを伝えているからですが、彼らは Flex と連携して Flash ベースの UI を構築することもできます。 Flashに相当するものがあります(脆弱であると仮定して)。
2 に答える
私が正しく理解していれば...
ASP.NET は Web ページの作成に使用され、作成されるすべての UI コンポーネントは HTML / JavaScript としてブラウザーで実行されます。あれは正しいですか?
その場合、クロス サイト スクリプティングを防止することが重要である理由が理解できます。
Flex (Flash Player で実行) では、すべてが SWF と呼ばれるバイナリ ファイルにコンパイルされます。ほとんどの場合、SWF は Flash Player 内で実行され、ブラウザでプラグインとして実行されます。XSS を使用して個々の Flex コンポーネントをハッキングする方法はありません。
あなたが書いたコードをクロス サイト スクリプティングから保護する必要があるとは思いません。あなたの最大の恐怖はプレイヤーの脆弱性であり、それを制御することはできません。
これは、ユーザー入力を検証しない理由にはなりません。
簡単に言えば、Flash プレーヤーには XSS 攻撃を防ぐための多くの機能が用意されていますが、それらはプレーヤー自体に組み込まれているため、使用する必要のある特定のライブラリはありません。セキュリティ関連の API を呼び出しておらず、構成ファイルをサーバーに配置していない場合、セキュリティに関しては、利用可能な最も制限的な設定を既に使用していることになります。(ユーザー入力の利用方法にも注意を払っていると仮定します。)
より一般的には、XSS の脆弱性につながる可能性のある API は、積極的に有効にしない限り、原則として XSS の状況では無効になります。たとえば、サイトの HTML ページが別のサイトの Flash ファイルに読み込まれ、その Flash コンテンツがたとえば JavaScript 呼び出しをページに行おうとすると、許可しない限り、これらの呼び出しはデフォルトでブロックされます。同様に、サイトの Flash コンテンツが別のサイトのコンポーネントに読み込まれる場合、API を呼び出して許可しない限り、それらのコンポーネントは親にイントロスペクトできません。また、別のサイトがあなたのサイトから Flash コンテンツを許可せずに読み込もうとした場合にどうなるかについても、さまざまな制限があります。
詳細については、次の優れた概要を強くお勧めします。
とはいえ、ユーザー入力のサニタイズについても質問されたので、AS3 にはコマンドに相当するものがないためeval
、ユーザー入力がスクリプトとして実行されるという問題はまったくないことに注意してください。ただし、読み込まれるコンテンツに関連するユーザー入力は、XSS 攻撃のベクトルになる可能性があります。(たとえば、ユーザーが入力した文字列を URL に追加してから読み込むと、ユーザーが悪意のある SWF をサイトに読み込ませる可能性があります。) -party SWF、そして誰かが悪意のあるコンテンツに置き換えます。したがって、Flash のコンテキストでは、XSS 攻撃に対する保護は、ユーザー入力をサニタイズすることではなく、外部からロードされたコンテンツがローカルで信頼されているかのように実行する許可を与えられないようにすることです。
さらに、サードパーティのコンテンツ (Flash アバター、コンポーネント、またはバナー広告など) で何か面白いことをしたい場合、デフォルトの制限を緩和することはしばしば有用または必要であるため、そのような状況では、サイト管理者が理解することが重要です。彼らが許可しているもの、および緩和された制限が脆弱性を露呈するのを防ぐ方法。