ホーム » カラムの設定権限(ホワイトリスト方式/ブラックリスト方式)について

カラムの設定権限(ホワイトリスト方式/ブラックリスト方式)について

概要

テーブルに対して、複数の値を代入する場合は、悪意のあるユーザが、HTTPリクエストでどんな値を挿入するのかが分からないため、Eloquentではデフォルトで複数代入の脆弱性から保護されています。
※複数代入=createメソッドやfillメソッドを利用する場合の事です

HTTPリクエストでどんな値が挿入されるか分からない。というのは、例えば、ユーザの権限テーブルがあった場合に、ユーザが管理者権限に格上げしてしまったら、アプリケーションを乗っ取られてしまいます。

なので、複数代入する場合は、更新していいカラムと、更新しちゃダメなカラムを設定する必要があります。

その設定をするのが、今回のfillableguardedプロパティになります。

// fillableは、ホワイトリスト方式を採用しているため、ここで設定した値のみ変更できます。
protected $fillable = [
    'name',
];

// guardedは、ブラックリスト方式を採用しているため、ここで設定した値は変更できない。
protected $guarded = [
    'id',
    'status',
];