1

現時点では、すべての実装に取り​​組んでいますが、トップ10プロジェクト
のセキュリティリスクに対して安全である必要があります。トップ10 の#4の場合-安全でない直接オブジェクト参照OWASPはOWASPアプリケーションセキュリティ検証標準を参照します

だから私はV3ですべてを読んでいましたが、それを実装するためのいくつかの質問があります。
JavaEE6およびJSF2.0でJBoss-AS7.0.1を使用しています

V3.4セッションIDがCookieヘッダー以外で開示されないことを確認します。特にURL、エラーメッセージ、またはログで。これには、アプリケーションがセッションCookieのURL書き換えをサポートしていないことの確認が含まれます。

私はここにstackoverflowに関するいくつかの記事を読みました。ユーザーが初めてサイドにアクセスしたときにジェッションがURLに含まれるのを防ぐ方法...しかし、多くの答えは次のようなものです:URL書き換えを使用する...これはthedoes not support URL rewriting of session cookies

最初のエントリでjsessionsを処理する通常の方法は何ですか?それを処理するための保存方法は何ですか?

V3.10:アプリケーションフレームワークによって生成されたセッションIDのみがアプリケーションによって有効であると認識されることを確認します。

JSF2.0 / JavaEEでこれをどのように行いますか?

V3.12:認証されたセッショントークン/ IDを含むCookieのドメインとパスが、そのサイトに対して適切に制限された値に設定されていることを確認します。

これは何を意味するのでしょうか?FirebugでCookieを調べると、URL http:// localhost:8080 / projectname /
からWebアプリケーションを実行し、Cookieで次 のように取得します。パス:/ projectname
は、OWASPの意味have their domain and path set to an appropriately restrictive value for that site.ですか?

ありがとうございました!

4

1 に答える 1

2

V3.4セッションIDがCookieヘッダー以外で開示されないことを確認します。特にURL、エラーメッセージ、またはログで。これには、アプリケーションがセッションCookieのURL書き換えをサポートしていないことの確認が含まれます。

サーブレットコンテナは、デフォルトでCookieとURLによるセッション追跡をサポートするように構成されています。URLによるセッション追跡は、「URL書き換え」とも呼ばれ;jsessionid=[session id]、URLに表示されます。これは、クライアントでCookieが無効になっている場合に自動的にトリガーされます。URLによる追跡を無効にするには、Cookieのみによる追跡モードを明示的に指定する必要があります。これをWebアプリに追加しますweb.xml

<session-config>
    <tracking-mode>COOKIE</tracking-mode>
</session-config>

さらに、 JSFコードがセッションIDをHTML出力に出力していないことを確認する必要があります<h:outputText value="#{session.id}" />


V3.10:アプリケーションフレームワークによって生成されたセッションIDのみがアプリケーションによって有効であると認識されることを確認します。

サーブレットコンテナはデフォルトですでにそれを行っています。Tomcat 6.x(および本質的にJBoss 5.x)のみにセキュリティの問題があり、サーバー全体のセッション共有が有効になっている場合、サーバーはCookie要求ヘッダーでクライアントから提供されたセッションIDを正確に使用します。Tomcat 7.x(したがって本質的にJBoss 6.x / 7.xも)はそれをもう行いません。その他の背景情報については、Tomcat 6.xの<Connector>ドキュメントも参照してください(emptySessionPath属性の説明を確認してください)。


V3.12:認証されたセッショントークン/ IDを含むCookieのドメインとパスが、そのサイトに対して適切に制限された値に設定されていることを確認します。

サーブレットコンテナはデフォルトですでにそれを行っています。サーバー全体のセッション共有を使用するようにサーブレットコンテナを構成した場合(つまり、デプロイされたすべてのアプリケーション間で同じセッションが共有された場合)にのみ、ルールに違反します。前のポイントも参照してください。

これらのルールのほとんどはJSFとはほとんど関係がないことに注意してください。それらは、一般的なサーバーとWebアプリの構成と関係があります。JSFは、コンポーネントベースのMVCフレームワークにすぎません。

于 2012-03-08T12:05:22.957 に答える