Skip to Content
Web アプリケーションセキュリティ
book

Web アプリケーションセキュリティ

by Andrew Hoffman
May 2025
Beginner to intermediate
330 pages
4h 34m
Japanese
O'Reilly Media, Inc.
Content preview from Web アプリケーションセキュリティ

第11章. クロスサイト・リクエスト・フォージェリ(CSRF)

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

実行したい演算子を実行できるAPIエンドポイントが存在することはすでに知っているが、そのエンドポイントには特権アクセス(管理者アカウントなど)が必要なため、アクセスできないことがある。

この章では、JavaScript のコード・スニペットを使うのではなく、管理者または特権アカウントに代理で演算子 を実行させるクロスサイト・リクエスト・フォージェリ(CSRF)エクスプロイトを構築する。

CSRF攻撃は、ブラウザの演算子やWebサイトとブラウザの信頼関係を利用する。セキュリティを確保するためにこの信頼関係に依存しているが、ブラウザへの信頼が高すぎるAPI呼び出しを発見することで、少しの努力で、リクエストを生成したユーザが知らないうちに、ユーザが自分の代わりにリクエストを行うようなリンクやフォームを作成することができる。

多くの場合、CSRF攻撃は攻撃されたユーザには気づかれない。ブラウザのリクエストは裏で行われているからだ。つまり、この種の攻撃は特権ユーザを利用し、ユーザに気づかれることなくサーバに対して演算子を実行することができる。これは最もステルス性の高い攻撃のひとつであり、2000年代初頭に始まって以来、ウェブ全体に大混乱を引き起こしてきた。

クエリ・パラメータの改ざん

CSRF攻撃の最も基本的な形態である、ハイパーリンクを介したパラメータ改ざんについて考えてみよう。

ウェブ上のハイパーリンクのほとんどは、HTTPのGETリクエストに対応している。最も一般的なものは、HTMLスニペットに埋め込まれた<a href="https://my-site.com"></a>

HTTP GETリクエストの構造は、それがどこから送信され、どこから読み取られ、どのようにネットワーク上を移動するかに関係なく、シンプルで一貫している。HTTP GETが有効であるためには、HTTP仕様のサポートされているバージョンに従わなければならない。

HTTP GETリクエストの構造は以下の通りである:

GET /resource-url?key=value HTTP/1.1
Host: www.mega-bank.com

すべてのHTTP GETリクエストは、HTTPメソッド(GET)、リソースURL、オプションのクエリパラメータのセットを含む。クエリパラメータの開始は? で示され、空白が発見されるまで続く。この後にHTTP仕様が来て、次の行にリソースURLのあるホストが来る。

ウェブサーバがこのリクエストを受け取ると、適切なハンドラクラスにルーティングされる。ハンドラクラスは、クエリパラメータと、リクエストを行ったユーザを特定するための追加情報、リクエスト元のブラウザの種類、返されるデータの形式を受け取る。

csrf-get
図11-1. CSRF GET-悪意のあるリンクが拡散され、クリックすると認証済みユーザに代わってHTTP GETリクエストが実行される。

この概念をより具体的にするために、例を見てみよう。

最初の例は、最も人気のあるNode.jsベースのウェブ・サーバー・ソフトウェアであるExpress.jsの上に書かれたサーバ側ルーティング・クラスである: ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

詳解 システム・パフォーマンス 第2版

詳解 システム・パフォーマンス 第2版

Brendan Gregg, 西脇 靖紘, 長尾 高弘
Linuxカーネルプログラミング 第2版

Linuxカーネルプログラミング 第2版

Kaiwan N. Billimoria, 武内 覚, 大岩 尚宏

Publisher Resources

ISBN: 9798341651111