2

私のWebアプリケーションは、ログインしているユーザーに機密情報を表示します。ユーザーは、最初に自分のサイトから明示的にログアウトせずに別のサイトにアクセスします。他のサイトが私またはユーザーの同意なしに機密情報にアクセスできないようにするにはどうすればよいですか?

たとえば、私の機密データがJavaScript形式の場合、他のサイトはそれをスクリプトタグに含めて、副作用を読み取ることができます。ブラックリストの作成を続けることはできますが、安全でないものを列挙したくありません。何が安全か知りたいのですが、これに関するドキュメントが見つかりません。

更新:私の例では、被害者のサイトからのJavaScriptが攻撃者のサイトで実行されましたが、その逆ではなく、クロスサイトスクリプティングでした。

もう1つの例は、他のサイトでは幅と高さを読み取ることができる画像ですが、コンテンツを読み取ることはできないと思いますが、表示することはできます。

3番目の例は、X-Frame-Optionsヘッダーのないものすべてをiframeにロードでき、そこからユーザーをだましてドラッグアンドドロップまたはコピーアンドペーストを実行させることでデータを盗むことができるというものです。

4

5 に答える 5

1

クロスサイト攻撃の重要なポイントは、表示されるユーザーからの入力が合法であり、一部のスクリプトが含まれていないことを確認することです。最初に止めてもかまいません。

于 2012-12-01T13:48:42.023 に答える
1

たとえば、私の機密データがJavaScript形式の場合、他のサイトはそれをスクリプトタグに含めることができます

うん!したがって、JavaScript/JSONP形式にしないでください。

JSONまたはJSコードを返すための通常の修正は、実行不可能なものを前面に配置して、構文エラーまたはハングを引き起こすことfor(;;);です(一般的です)。したがって、リソースをとして含めると<script>、攻撃者はどこにも到達しません。自分のサイトからアクセスする場合は、XMLHttpRequestを使用してフェッチし、評価する前にプレフィックスを切り取ることができます。

(機能しない回避策はwindow.location、返されたスクリプトをチェックインすることです。攻撃者のページに含まれている場合、攻撃者はJavaScript環境を制御し、組み込みオブジェクトを妨害して予期しないことを行う可能性があります。)

于 2012-12-02T13:15:48.483 に答える
1

ここで探していた答えが得られなかったので、別のフォーラムで答えを求めました。ここにあります: https ://groups.google.com/forum/?fromgroups =#!topic / mozilla.dev.security / 9U6HTOh-p4g

私の質問に答えるこのページも見つけました: http ://code.google.com/p/browsersec/wiki/Part2#Life_outside_same-origin_rules

于 2012-12-13T20:02:34.680 に答える
0

まず、superpdmの状態と同様に、機密情報が最初からクライアント側に保存されないようにするか、悪意のあるユーザーが理解できないように、アプリをゼロから設計します。

さらに、あまり制御できないデータ項目については、クライアント側のスクリプトがセッショントークンなどのCookieにアクセスできないようにするHttpOnlyなどの組み込みのHTTPコントロールを利用できます。Cookieを設定httpOnlyすると、悪意のあるvbscript、javascriptなどがクライアント側のトークンを読み取ったり変更したりしないようにするのに大いに役立ちます。

于 2012-12-01T18:46:16.320 に答える
0

私たちのWebセキュリティ知識の世界にはまだ混乱が残っていると思います。あなたはクロスサイトリクエストフォージェリを恐れていますが、クロスサイトスクリプティングの解決策を説明して探しています。

クロスサイトスクリプティングは、悪意のある人物が不要なコンテンツをサイトに挿入することを可能にする脆弱性です。テキストの場合もありますが、JSコード、VB、またはJavaアプレットの場合もあります(httpOnlyフラグによって提供される保護を回避するために使用できるため、アプレットについて説明しました)。したがって、認識しているユーザーが悪意のあるリンクをクリックすると、データが盗まれる可能性があります。これは、ユーザーに提示される機密データの量によって異なります。リンクをクリックすることは、XSS攻撃の攻撃ベクトルであるだけでなく、他のユーザーから提供されたフィルタリングされていないコンテンツをユーザーに提示すると、誰かが悪意のあるコードを挿入して損害を与える可能性があります。彼は欲しいものを手に入れるために誰かのクッキーを盗む必要はありません。また、アプリにログインしたまま他のサイトにアクセスすることとは関係ありません。おすすめ:XSS

クロスサイトリクエストフォージェリは、誰かが特別に細工したフォームを作成してログインユーザーに提示することを可能にする脆弱性です。このフォームを送信した後、ユーザーは意図しない操作をアプリで実行する可能性があります。操作は、転送、パスワード変更、またはユーザー追加の場合があります。そして、これはあなたが心配している脅威です。ユーザーがアプリとのセッションを保持し、JSで自動送信されるようなフォームでサイトにアクセスすると、そのようなリクエストが認証され、操作が実行されます。また、攻撃者はCookieに保存されているsessionIdにアクセスする必要がないため、httpOnlyはそれから保護しません。おすすめ:CSRF

于 2012-12-01T21:06:55.163 に答える