Stack Map新人 Web エンジニアの地図

守りは「あとで足すもの」ではなく、作るときから考えるもの。
よく混ざる言葉から、よくある攻撃と守り方、AI 時代の新しい攻撃、やりがちなミスまで。

まず、よく混ざる言葉の違い

ここを取り違えると、守ったつもりで守れていない、が起きます。 ログインの仕組みは認証と認可へ。

守りの考え方(7 つ)

どんな言語やクラウドでも変わらない、基本の構えです。全部を同じ強さでは守れないので、何から守るかはリスクで決めます。

    よくある攻撃と守り方

    たとえ話・起きると困ること・守り方・実際に起きた事件(出典付き)。右上の番号は、下の OWASP Top 10:2025 の項目です。 API ならではの弱点はAPI 設計の「守り」(OWASP API Security Top 10)へ。

    Laravel でよくある穴

    Laravel は、初めから多くの守りが入っています。穴が開くのは、その守りを自分で外したり、確かめを書き忘れたりしたときです。

    入力を丸ごと保存する(マスアサインメント)

    送られてきた項目を全部そのまま保存すると、画面にない is_admin なども送られて、書き換えられてしまう。

    ✕ 危ない
    User::create($request->all());
    ○ こうする
    // モデルで、書き込んでよい列を決める
    #[Fillable(['name', 'email'])]
    class User extends Model { /* ... */ }
    // (Laravel 12 までは protected $fillable = [...])
    
    // チェックを通った値だけを使う
    User::create($request->validated());

    Laravel「Mass Assignment」 / Laravel「Form Request Validation」

    {!! !!} でエスケープを外す

    Blade の {{ }} は、自動で HTML の記号を無害にしてくれる。{!! !!} はそれを外すので、利用者が書いた文に使うと XSS になる。

    ✕ 危ない
    {!! $comment->body !!}
    ○ こうする
    {{ $comment->body }}

    Laravel「Displaying Data」

    「この人がしてよいか」を確かめ忘れる

    ログインしているかだけを見て、その投稿の持ち主かを確かめないと、ID を変えるだけで他人の投稿を直せてしまう。

    ✕ 危ない
    $post = Post::findOrFail($id);
    $post->update($data); // だれの投稿でも直せる
    ○ こうする
    Gate::authorize('update', $post); // ポリシーで確かめる
    $post->update($data);

    Laravel「Authorizing Actions Using Policies」

    OWASP Top 10:2025(Web の危ない所トップ 10)

    世界中の調査をもとに、Web アプリで多い・重い弱点をまとめた一覧です(2025 年版)。押すと、関係する攻撃のカードが光ります。

    AI 時代の攻撃と守り方(プロンプトインジェクションなど)

    AI を組み込んだサービスや、AI に仕事を任せる開発では、新しい弱点が生まれます。基本は同じで、AI への入力も、AI の出力も「外から来たもの」として扱うこと。ただし SQL インジェクションと違って、プロンプトインジェクションにはまだ確実な防ぎ方がありません(OWASP もそう書いています)。だから、だまされても被害が小さく済むように、権限を絞り、大事な操作は人が確認します。右上の番号は、下の OWASP Top 10 for LLM 2025 の項目です。 AI と開発するときに気をつけることはAI と開発のタブへ。

    OWASP Top 10 for LLM Applications 2025(AI を使うアプリの危ない所トップ 10)

    開発の流れの中のセキュリティ

    早い工程で考えるほど、直すのは安く済みます。開発の流れの各工程でやることです。 テストの書き方はテスト、本番の見張りは運用のタブへ。

    守りの道具

    人の注意だけに頼らず、道具で自動化します。

    漏れたかも、と思ったら

    個人情報や鍵が漏れたかもしれないときは、1 人で抱えず、すぐ動きます。早いほど、被害は小さくなります。

    1. すぐ知らせる上の人とセキュリティの担当に、すぐ伝える。自分で隠したり、消したりしない。考え方のヒント
    2. 広がりを止める鍵を無効にする、公開の設定を戻す、など。鍵を push したときは Git の取り消し方へ。考え方のヒント
    3. 記録を残すいつ・何が・どこまで・だれが気づいたか。あとの報告と振り返りに使う。考え方のヒント
    4. 法律の報告個人データの漏えい(そのおそれも含む)で、要配慮個人情報・財産の被害のおそれ・不正の目的・1,000 人を超える、のどれかに当たるときは、個人情報保護委員会への報告が義務。発覚したら、まずは速やかに。個人情報保護委員会「漏えい等の対応」

    若手がやりがちなミス(チェックリスト)

    自分のコードや設定で確かめたら、チェックを付けてみてください(この端末にだけ保存されます)。