web-dev-qa-db-ja.com

サブドメインで安全でないwebappを防止すると、メインwebappのセキュリティが危険にさらされます

私が漠然と覚えている脆弱性のタイプに関するより具体的な情報を得るのを助けて欲しい。

1年前、サブドメインにWebアプリケーションをセットアップし、そのWebアプリケーションが危険にさらされると、メインのWebアプリケーション(ルートドメイン)も危険にさらされる可能性があることを漠然と覚えています(これは曖昧な部分です)私の記憶では)2つの異なるwebappが同じルートドメインからのものであるため、ブラウザーは2つの異なるwebappが同じエンティティであると想定しています。

これが、Facebookが元々開発者フォーラムをfacebook.comのサブドメインではなく別のドメインでホストしていた理由だと聞きました。 farセキュリティ問題の監査はFacebook自体よりも広範囲でなく、フォーラムのセキュリティホールに許可を望まなかったため攻撃者がFacebook自体にアクセスする。

(明確にするために、これらの攻撃は2台のサーバー間のある種の接続ではなく、ブラウザに基づいています。)

私の質問:これらの脆弱性の詳細と、それらをどのように保護することができるかを具体的に教えてください。あるWebアプリケーションにアクセスする攻撃者が別のWebアプリケーションにアクセスできないと確信しています。同じルートドメインに?

11
Ram Rachum

目的は、1つのWebアプリケーションのXSS脆弱性が他のWebアプリケーションの侵害を許可しないようにすることです。

2つの別々のドメインで実行する場合(例:facebook.comおよびfacebookdevelopers.com; ではないfacebook.comおよびdevelopers.facebook.com)の場合、ブラウザの同じ元のポリシーにより、2つのWebアプリが分離されます。

これについては、他のいくつかの質問で詳しく説明しています。技術的な詳細をすべて繰り返すのではなく、他の質問を紹介します。

6
D.W.

これは 安全でないcookieスコープ のように聞こえます。アプリケーションがCookieを.domain.comにスコープしている場合、サブドメインのXSSがアカウントの侵害につながる可能性があります。

アプリケーションが別々のサーバー上にある限り、それらは同じデータベースアカウントを共有せず、Cookieのスコープは適切であり、心配する必要はありません。

7
rook

ドメインIIRCとは関係ありません。同じユーザーの同じWebサーバーで実行されているだけです。したがって、分離を行うには、制限付きの権限を持つ別のユーザーの下でwebappを実行する必要があります。 1つのサイトを実行しているユーザーは、他のユーザーが実行しているファイルやディレクトリに対する権限を持っていてはなりません。

とにかく、あなたのwebappが安全ではないと思うなら。オンラインにしないでください。

1
Lucas Kauffman

@Rookが説明しているように、 このS.O.スレッドがCookieのスコープについて説明しているスレッド に興味があるかもしれません。

この問題を修正する1つの方法は、上記のリンクに示されているチャネルバインドCookie( 保留中のRFC )を使用することです。

0