2010-12-26 8 views
3

私はphp/mysqlでソーシャルWebアプリケーションを開発していますが、セキュリティを実装するためのよりよい方法についてアドバイスをいただきたいと思います。 - プレゼンテーションレベルでは、資格のある権利で見ることができるアイテム/コンテンツのみを表示するようにユーザーを制限します。 & 私のデータが読み取り/私はその人がそのようなデータの部分とのそのような相互作用の権利を持っていることを確認します。 したがって、各アクションには、ビューレベルでセキュリティレベルが2層ある&がデータベースレベルにあります。 二重チェックはオーバーヘッドになりますか?ソーシャルネットワークWebアプリケーションでセキュリティをどのレベルで実装する必要がありますか?

これは内部のセキュリティ問題にのみ扱う勿論..そのは考慮にグループを取るので、私はMandatory Access Controlを使用して、推奨アクセス許可モデルの面では

+3

あなたは実際にはセキュリティではなく「アクセス許可」を指しています。 – mario

+0

私はMarioに同意しますが、セキュリティは単に「追加」するものではありません。 – rook

+0

申し訳ありません私は初心者ですので、あまり専門家ではありません.. :) –

答えて

2

現在のユーザーは誰ですか?

ビジネス層の場合、現在のユーザーを知ることができないため、アクセス制御はできません。むしろ、プレゼンテーションは、特定のユーザが特定のアクションを実行することが許可されるかどうか毎回、認可コンポーネントに尋ねなければならない。これで結構です。プレゼンテーション層が基本的に明確に定義されたユースケースを実行する場合

の場合、プレゼンテーション層からビジネス層に到達するコールについて、認可コンポーネント自体に依頼することがあります。しかし、これは多くの冗長チェックを導入する。これで結構です。プレゼンテーション層がビジネス層のエンティティオブジェクトでたくさんのすばらしいことをしている場合や、セキュリティが重要な場合。

+0

ありがとうございます。私は実際にプレゼンテーションとビジネスレイヤの両方でチェックを行うことを考えていました。私は、プレゼンテーション層でチェックすることで、特定のコンテンツに不適格なユーザーがアクセスできる通常の方法では見えないコンテンツにアクセスできる可能性があるため、問題を完全には解決できないと考えていますが、彼はそのリンクを知っています.. –

+0

@Rajkumar Gupta Invoking URLに基​​づくユースケースはプレゼンテーションの一部です。私が話していた違いは、ユースケースを呼び出したり、承認を確認したり、ユースケースを独自に実行するコントローラです。いずれかが(適切に)行われた場合、ユーザーは許可されていないURLにアクセスすることはできません。 – Oswald

0

。 (RBACは注目に値する別のモデルですが、グループはありません)

しかし、セキュリティは実際にはコード品質管理の問題です。最も強化されたRBACを実装することができ、単一のXSS/XSRF/SQLi脆弱性によって完全にバイパスされます。

関連する問題