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版

第13章. インジェクション

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

ウェブ・アプリケーションに対する最も一般的に知られている攻撃のタイプの一つは、SQL インジェクションである。SQL インジェクションは、特に SQL データベースを標的にしたインジェクション攻撃の一種であり、悪意のあるユーザが既存の SQL クエリに自分自身のパラメータを与えたり、SQL クエリをエスケープして自分自身のクエリを与えることを可能にする。当然のことながら、SQLインタプリタにはデフォルトでエスカレーションされたパーミッションが与えられているため、この攻撃は通常データベースを危険にさらす結果となる。

SQLインジェクションはインジェクションの最も一般的な形態だが、唯一の形態ではない。インジェクション攻撃には、 、インタプリタと、何らかの方法でインタプリタに読み込まれるユーザからのペイロードという2つの主要コンポーネントがある。つまり、インジェクション攻撃は、FFMPEG(ビデオ圧縮機)のようなコマンドライン・ユーティリティに対しても、(従来のSQLインジェクションのケースのように)データベースに対しても起こりうるということだ。

このような攻撃が機能するためにはどのようなアプリケーションアーキテクチャが必要なのか、そして脆弱なAPIに対するペイロードがどのように形成され、配信され得るのかをよく理解するために、インジェクション攻撃のいくつかの形態を見てみよう。

SQLインジェクション

SQLインジェクション は最も古典的なインジェクションの形態である(図13-1参照)。SQL文字列がHTTPペイロードの中でエスケープされ、エンドユーザに代わってカスタムSQLクエリが実行される。

伝統的に、 OSSパッケージの多くは、PHPとSQL(多くの場合MySQL)を組み合わせて構築されていた。歴史を通して最も参照されてきたSQLインジェクションの脆弱性の多くは、 PHPのビュー、ロジック、データコード間の補間に対する緩やかな見解の結果として発生した。旧来のPHP開発者は、SQL、HTML、PHPの組み合わせをPHPファイルに織り込んでいました。

was2 1301
図13-1. SQLインジェクション

ユーザがログインするための、古いタイプのフォーラム・ソフトウェアのPHPコード・ブロックの例を見てみよう:

<?php if ($_SERVER['REQUEST_METHOD'] != 'POST') {
  echo'
   <div class="row">
     <div class="small-12 columns">
         <form method="post" action="">
           <fieldset class="panel">
             <center>
               <h1>Sign In</h1><br>
             </center>
             <label>
               <input type="text" id="username" name="username"
               placeholder="Username">
             </label>
             <label>
 <input type="password" id="password" name="password" ...
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