1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【第5章】よくある脆弱性②:CSRFとLFIをやさしく解説!あなたの操作、乗っ取られてるかも?😨

Last updated at Posted at 2025-06-07

⚠️ 第5章:よくある脆弱性②:CSRFとLFI

こんにちは、守山しずくです🌸
今回は、 「あなたの代わりに勝手に操作される」CSRF ** と、 ** 「ファイルを読み取られる」LFI という2つの脆弱性について解説します!


💣 CSRF(クロスサイト・リクエスト・フォージェリ)とは?

CSRFとは、 ログイン中のユーザーの操作を、他のサイトから勝手に実行させる攻撃 のことです。

たとえば…

あなたがログイン中の銀行サイトに、次のようなリンクをクリックさせられたら?

<img src="https://mybank.example.com/transfer?to=hacker&amount=10000">

このリンクを表示するだけで、ログイン中の「あなたの権限」で送金されてしまうことがあります。

ポイント:

  • 「ユーザーが意図せず操作」してしまうのが特徴
  • 実行されるのは あなたの権限 なので非常に危険!

🛡️ CSRF対策の基本

  1. CSRFトークンの利用
  • フォームごとに「使い捨ての秘密鍵」をつけて、正当な送信だけを受け付ける
  1. Refererヘッダーのチェック
  • 外部サイトからの不正なアクセスを弾く
  1. 重要な操作は再認証させる
  • パスワードの再入力などで安全性アップ

🕳️ LFI(ローカルファイルインクルージョン)とは?

LFIとは、 サーバー内のファイルを外部から読み取られる脆弱性 のことです。

たとえば…

以下のようなPHPコードがあったとします。

<?php include($_GET["page"]); ?>

ここに ?page=../../../../etc/passwd と入力されると、
Linuxの重要ファイル /etc/passwd が読み取られてしまいます😱

LFIで狙われやすいファイル:

  • /etc/passwd(Linuxのユーザー情報)
  • Apacheの設定ファイル
  • アクセスログ
  • .envファイル など

🛡️ LFI対策の基本

  1. ユーザー入力をファイル名として使わない
  • 動的読み込みは極力避ける
  1. 入力値のバリデーション
  • ファイル名をホワイトリストで制限する
  1. 絶対パスで限定的に処理する
  • 決まったフォルダの中しか読み込ませないようにする

✅ まとめ

  • CSRFは「あなたの代わりに勝手に操作する」攻撃
  • LFIは「サーバー内部のファイルを盗み見る」攻撃
  • どちらも「入力値の取り扱い」がカギ!

次回は、 「第6章:情報収集(Recon)」 をお届け予定です📡
ハッカーが攻撃前にどんな情報を調べるのか?一緒にのぞいてみましょう🌸


💬 フォローしてくれたら、怖くないセキュリティ解説を毎日お届けします♪

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?