2011-06-30 6 views
1

は、私はセキュリティのために自分のアプリケーションのほぼすべてのpublic方法でauthenticationチェックを使用する必要がありますか?パブリックメソッドの認証チェックを使用する必要がありますか?オブジェクト指向のPHPアプリケーションで

私はこの脆弱性の心配:CWE-306: Missing Authentication for Critical Function

誰もが私はstaticキーワードを使用している場合でも、私のパブリックメソッドを呼び出すことができますどのように?


この攻撃が成功するための要件は何ですか?私のシステムにPHPファイルのアップロードを許可するように - いくつかの他の脆弱性と同様に

?記事の状態として

答えて

2

あなたが適切にあなたのアプリケーションを構築する場合、これが問題になることはありません。あなたのクラスに公開メソッドか非公開メソッドがあるかどうかは問題ではありませんが、問題はアプリケーションへの経路が保護されていないことです。

それは、エントリの一点のみを提供するようにあなたのアプリケーションは、構造化されなければなりません。任意のファイルへの要求は、メインファイルを介してルーティングする必要があります。他のPHPファイルには直接アクセスできません。このように構造化すると、アプリケーションに提供される各要求を調べ、認証が必要なものと公開される必要があるものを識別できるように、認証を適用するのは簡単です。

このパターンを見てください:、私はこの1を与えているだろうhttp://en.wikipedia.org/wiki/Front_Controller_pattern

+0

それがソリューションを実装するために、フロントコントローラを使用しての勧告がなかっ:私はそれを行うだろうかP – symcbean

+0

だことが、私はいつも他の人が物事に接近する方法に興味があります。あなたのソリューションを投稿してください! :) – JohnP

+0

私は同様のアプローチを取っています。認証をチェックするファイルをインクルードします(通常はセッション管理と認証も処理します)。しかし、実行エントリポイントからのインクルードファイルとしてルータ – symcbean

関連する問題