Skip to content
Create a gist now

Instantly share code, notes, and snippets.

CakePHP Mass Assignment Vulnerability - common process
// モデルの場合。
// 以下と相似なヘルパーメソッドを作れば、いちいち同じようなメソッドを大量生産しなくて済むよ!
class Post extends AppModel {
public function edit($id, $data) {
$this->set('id', $id);
return $this->save(null, true, array('name'));
class PostsController extends AppController {
public function edit($id = null) {
if ($this->RequestHandler->is('post')) {
// 更新なのでcreate()にfalseを指定する
// データをセットする
// IDだけはpostデータでセットされると好き勝手やられる可能性があるので、pass(アクションの引数)で渡ってきたものを使う
// isAuthorized()でpassの一番目をチェックすることで、記事の所有者であるかを確かめることができる(存在しないレコードとかも)
$this->Post->set('id', $id);
// 保存するフィールドの指定は必ずする。
if ($this->Post->save(null, true, array('name'))) {
// success/redirect
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.