セキュリティを強化するために使用される「コンテキストオブジェクト」デザインパターンはどのようになりますか?

StackOverflow https://stackoverflow.com/questions/3260323

質問

コンテキストオブジェクトデザインパターンの使用に精通しています - ティア間で渡されたオブジェクトの周囲の軽量のコンテキストラッパー。

コンテキストオブジェクトを使用して、TAINT(信頼できないユーザ入力)、またはORIONTIERを追跡して、受信層がそれに応じて動的にフィルタリング、エンコード、または検証できる方法がわかりました。

次のように: ユーザは、最終的にはシステム上のファイルとして格納される「HTTP / HTML」コンテキストデータを送信します。ファイル保存方法は、コンテキストとデコードHTMLエンティティを検出し、ファイルのアップロードにランダムな識別子を割り当て、データベース内のユーザアクションとファイル名を関連付けることができます。

私の質問は、デフォルトですべてのフィルタリング、エンコード、検証を適用するよりも賢いのですか?原点の文脈を知ることを知っている場合はどのような場合はセキュリティが向上すると、良い入力検証/エンコーディングを向上させますか?

私はJava / J2EE / Strutsで働いていますが、これは他の言語とフレームワークに一般化できます。

参考文献:

http://www.corej2epatterns.com/patterns2nded/contextObject.htm

http://www.cs.wustl。 EDU / ~Schmidt / PDF / context-object-pattern.pdf

http://www.owasp.org/index.php/category:owasp_security_analysis_of_core_j2ee_design_patterns_project.

ありがとう、

-Ben

役に立ちましたか?

解決

アプリケーション層間の汚染追跡がコンテキストオブジェクトパターンの最良のアプリケーションであることを知りません。私がそれを理解しているように、コンテキストオブジェクトは単一層内に留まるオブジェクトであり、そのティアを通過する複数のメッセージにサービスを提供します。

このために使用されることができる場所では、セキュリティメカニズムとして、アプリケーション内の明示的なセキュリティレイヤが作成されています。各ユーザーがシステムで認証されるように、セキュリティコンテキストオブジェクトはそのユーザーのセキュリティレイヤー内に作成されます。セキュリティコンテキストオブジェクトには、そのユーザーの権限のすべてのリストが含まれています。どのユーザーからシステムに入るすべての要求が最初にセキュリティレイヤーを通過し、ユーザーのセキュリティコンテキストオブジェクトに対して評価されなければなりません。

要求が許可されている場合、セキュリティ層はそのスタックを上位レイヤに渡して処理のために上位レイヤーに渡します。要求が拒否された場合、セキュリティ層はエラーをユーザーに返し、残りのアプリケーションは賢明なものではありません。セキュリティ層内のセキュリティ上の懸念を集中化することは、ビジネス層とサービス層全体のセキュリティチェックの散乱を防ぎます。

この場合、セキュリティコンテキストオブジェクトはコンテキストオブジェクトパターンを実装しています。コンテキストオブジェクトは長く生き、複数のユーザー要求にコンテキストを提供しますが、リクエストスタック内の上位または下位レイヤーには表示されません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top