Skip to Content
ウェブアプリケーションセキュリティ 第2版
book

ウェブアプリケーションセキュリティ 第2版

by Andrew Hoffman
March 2025
Intermediate to advanced
444 pages
6h 9m
Japanese
O'Reilly Media, Inc.
Audio summary available
Content preview from ウェブアプリケーションセキュリティ 第2版

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

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

実行したい演算子を実行できるAPIエンドポイントが存在することは既に知っているが、特権アクセス(例えば管理者アカウント)が必要なため、そのエンドポイントにアクセスできないことがある。この章では、JavaScript のコード・スニペットを使うのではなく、管理者または演算子が我々の代わりに演算を実行するようなクロスサイト・リクエスト・フォージェリ(CSRF)エクスプロイトを構築する。

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

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

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

CSRF攻撃の最も基本的な形態である、ハイパーリンクを介したパラメータ改ざんについて考えてみよう(図11-1参照)。ウェブ上のほとんどのハイパーリンクは 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ベースのウェブ・サーバー・ソフトウェアであるExpressJSの上に書かれたサーバ側ルーティング・クラスだ: ...

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

ハイパーモダンPython ―信頼性の高いワークフローを構築するモダンテクニック

ハイパーモダンPython ―信頼性の高いワークフローを構築するモダンテクニック

Claudio Jolowicz, 嶋田 健志, 鈴木 駿
Kubernetesで実践するクラウドネイティブDevOps

Kubernetesで実践するクラウドネイティブDevOps

John Arundel, Justin Domingus, 須田 一輝, 渡邉 了介
流暢なReact

流暢なReact

Tejas Kumar

Publisher Resources

ISBN: 9798341627505