agentleFS
s977043s977043/river-review/skills/midstream/laravel-mass-assignment/SKILL.md

Laravel Mass Assignment and Authorization Review

Skill7 starsChanged 5 months agoMITView on GitHub

Detects mass assignment via create/update($request->all()), unguarded models, and missing authorization on mutating controller actions in Laravel.

The file

Files
SKILL.md

Pattern declaration

Primary pattern: Reviewer Secondary patterns: Inversion Why: mass assignment 脆弱性と認可漏れをチェックリスト型で検査する

Goal / 目的

  • create($request->all()) 等による mass assignment 脆弱性(公式が is_admin 注入による権限昇格を例示)を検出する。
  • 更新・削除系コントローラアクションの認可チェック漏れを検出する。

Non-goals / 扱わないこと

  • クエリ効率(laravel-eloquent-nplus1 のスコープ)。
  • バリデーションルールの網羅性(要件依存のため一律指摘しない)。
  • Gate と Policy の使い分けの強制(公式が混在を許容)。

Pre-execution Gate / 実行前ゲート

このスキルは以下の条件がすべて満たされない限りNO_REVIEWを返す。

  • 差分にモデルの create / update / fill、またはコントローラの mutating アクションの追加変更が含まれている
  • diff コンテキストが利用可能である

ゲート不成立時の出力: NO_REVIEW: laravel-mass-assignment — 対象操作の変更なし

False-positive guards / 抑制条件

  • $request->all() でも直後に手動フィルタ / 明示カラム指定があれば安全。
  • CLI / seeder / 内部処理での forceFill / unguard は、ユーザー入力でなければ脆弱性ではない。
  • authorize(): true は認可を controller / middleware 側で実施していれば正当。
  • before() filter(admin 一括許可)がある場合、個別 policy メソッドに admin 分岐がないことを指摘しない。
  • Gate を使っていること自体は指摘しない(公式が Gate / Policy 混在を許容)。

Rule / ルール

  • ユーザー入力からのモデル作成・更新は $request->validated() / $request->safe()->only([...]) を使う($request->all() 直渡しを避ける)。
  • $guarded = [](全 unguarded)でユーザー入力を直接渡していないか確認する。
  • 更新・削除系アクションに認可(Gate::authorize / $user->can / can middleware / FormRequest authorize() のいずれか)があるか確認する。
  • 複雑・再利用される validation は FormRequest 化を推奨する。

Evidence / 根拠の取り方

  • 指摘は <file>:<line> で差分に紐づけ、公式規約(laravel.com/docs/12.x/eloquent#mass-assignment / authorization)を 1 行で添える。
  • 認可が diff 外の middleware にある可能性がある場合は断定せず questions で返す。

Output / 出力(短文版の推奨)

コメントは日本語で返す。

  • Finding: mass assignment / 認可漏れのどちらか(1文)
  • Impact: 権限昇格 / 不正データ更新
  • Fix: validated() / safe()->only() / 認可追加の最小案

Sources / 出典

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.