0

正確には、CakePHPフレームワーク2.0を使い始めたところです。私はほとんどのドキュメントと例を読み、ブログのチュートリアルに出くわしました。

http://book.cakephp.org/2.0/en/tutorials-and-examples/blog/part-two.html#editing-posts チュートリアルの「投稿の編集」セクションで、彼らが隠しフィールドを使用して投稿IDを覚えておいてください。これはクライアント側の変更による悪い習慣ではありませんか?

私がこれを処理した方法は、非表示のフィールドを削除し、フォームが送信されたら、保存して検証する前に投稿IDをPOSTデータに追加することです。これはこれを行う正しい方法ですか?

4

3 に答える 3

1

はい、データの改ざんが心配な場合は、これがほぼ正しい方法です。レコードが特定のユーザーに属している場合、このユーザーが ID を他のユーザーのレコードの ID に置き換えることができないことを確認する必要があります。セキュリティ コンポーネントはここでも役に立ちません (少なくともいくつかの側面では)。

詳細については、こちらをご覧ください: http://www.dereuromark.de/2010/09/21/ Saving-model-data-and-security/

于 2012-01-23T22:50:06.673 に答える
1

SecurityComponent は非表示フィールドに役立ちます。改ざんされた非表示の入力が含まれていることを検出した要求はすべてブラックホール化されますが、ドロップダウン入力に対しては何もしません。Firebug でいくつかの AddUser フォームを開いてクラックし、オプションを追加できます。

<option value="superadmin">SuperAdmin</option>

"role" ドロップダウンでフォーム上でそれを選択すると、送信時に CakePHP が新しい SuperAdmin を作成します。したがって、最善のポリシーは、クライアントを信頼しないことです。クライアントはオオカミの群れであり、サーバーはうさぎの群れです。それらの2つを別々に保管してください。

于 2013-08-30T15:28:54.893 に答える
0

SecurityComponent を AppController::$components 変数に追加して、クライアントが隠しフィールドを変更できないようにするだけです。

于 2012-01-23T22:27:29.793 に答える