最近、CakePHP を使用した簡単なブログの作成に関するチュートリアルを終了しました。リンクは次のとおりです: http://book.cakephp.org/2.0/en/tutorials-and-examples/blog/part-two.html 検証フォームの作成は非常に簡単で高速です、しかし、1つの問題に気付きました。
post.ctp という名前のファイルには次が含まれます。
echo $this->Form->create('Post');
echo $this->Form->input('title');
そして、次の入力でエンド ユーザーにフォームを生成します。
<input id="PostTitle" type="text" required="required" maxlength="50" name="data[Post][title]">
Firefox Firebug を使用している人は、フォームを送信する前に html コードを from: から: に変更できname="data[Post][title]"
ますname="data[Post][author]"
。この結果、「タイトル」ではなく「著者」という名前の列が更新され、「タイトル」の空のデータでデータベースを更新することもできます。
Post.php の「モデル」という名前のフォルダーでは、検証ルールはそれを妨げません。
class Post extends AppModel {
public $validate = array(
'title' => array(
'rule' => 'notEmpty'
),
'body' => array(
'rule' => 'notEmpty'
)
);
}
アプリケーションを保護し、誰かがデータベース内の他の列を更新できないようにする方法は?