編集:
DCoderからより多くの情報を受け取った後、私がここで探していたフレーズは「大量割り当ての脆弱性」です。つまり、初期フォームに存在するかどうかに関係なく、すべての有効なフィールドをデータベースに保存するメソッドの利便性を利用します(意図したフィールドよりも多くの[おそらくより重要な]フィールドを含む操作されたPOSTデータに対して脆弱になります) )。
次に、2つの一般的な応答は、ホワイトリストとブラックリストに適切に名前が付けられます。変更を目的としたフィールドをホワイトリストに登録するか、変更してはならないフィールドをブラックリストに登録します。
次に、私の質問は次のとおりです。CakePHPは、送信フォームのフィールドのみを自動的にホワイトリストに登録しますか、それとも私(および他のCakeファン)が適切にホワイトリストに登録またはブラックリストに登録するように注意する必要がありますか?
元の質問:
Cakeは、フォームを生成してほぼ自動的に処理するための多くの優れた方法を提供します。セキュリティについて考えていたとき、Cakeは送信されたフォームにどのフィールドが存在するかを認識しているのでしょうか、それとも単に有効なフィールドを受け入れるのでしょうか。私が意味をなさない場合は、次のシナリオを採用してください(そして、誰かが私の質問を編集して、より良い表現方法を考えられる場合は、より適切な表現にすることができます):
ユーザーにプロファイルの編集を許可するとします。アクションの下に、ユーザー名、電子メール、およびパスワードのフィールドを持つフォームを作成しますedit
。
賢いユーザーは、is_admin
フィールドをからfalse
に変更したいので、firebugなどのアプリを使用して、に設定されたフィールドを含むtrue
カスタム投稿データをアクションに送信します。edit
is_admin
true
問題は、Cakeがそれ自体でis_admin
元の形式ではなかったことに気付くのでしょうか、それとも、特定のアクションで変更できるフィールドのみを明示的に指定するように注意する必要があるのでしょうか。もっと簡単な方法はありますか?
ありがとうございました!
ジェームズ