めんどうくさいWebセキュリティ(上野 宣 新丈 径 新丈 径 Michal Zalewski)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. めんどうくさいWebセキュリティ

めんどうくさいWebセキュリティ

監修
翻訳
原著

形式:
書籍
発売日:
ISBN:
9784798128092
定価:
3,278(本体2,980円+税10%)
仕様:
A5・400ページ
キーワード:
#ネットワーク・サーバ・セキュリティ,#データ・データベース,#システム運用,#Web・アプリ開発

ブラウザセキュリティの第一人者による広くて深い一冊

“Web セキュリティ”と聞くと、どうにも腰を上げるのが億劫になってしまいがち。けれども、Web の原動力を支えるには必要不可欠な技術要件。その現状を、深い洞察とともにコンパクトにまとめました。本書はWeb アプリケーションセキュリティの世界で何が起きているか、その現状をシステマチックかつ徹底的な分析をした初めての本です。

第1章 Webアプリケーションの世界におけるセキュリティ

情報セキュリティとは
Webが歩んできた道
脅威の進化と変遷

第I部 Webの構成要素

第2章 URLから始めよう

URLの構造
予約文字とパーセントエンコーディング
一般的なURLのスキームとその機能
相対URLの解決
セキュリティエンジニアリングチェック表

第3章 HyperText Transfer Protocol

HTTPトラフィックの基礎構文
HTTPリクエストの種類
サーバーレスポンスコード
キープアライブセッション
チャンクデータの送受信
キャッシュの振る舞い
HTTPクッキーのセマンティクス
HTTP認証
プロトコルレベルでの暗号化およびクライアント認証
セキュリティエンジニアリングチェック表

第4章 HyperText Markup Language

HTMLドキュメントを支える基本概念
ドキュメントのパースモード
HTMLパーサーの振る舞いを理解する
エンティティエンコーディング
HTTP/HTMLを統合するセマンティクス
ハイパーリンクとコンテンツのインクルード
セキュリティエンジニアリングチェック表

第5章 Cascading Style Sheets

CSSの基本構文
パーサーの再同期に関連するリスク
文字エンコーディング
セキュリティエンジニアリングチェック表

第6章 ブラウザサイドスクリプト

JavaScriptの基本的な特徴
標準オブジェクト階層
スクリプトの文字エンコーディング
コードのインクルードモードとネストの危険性
死んだはずだよ:Visual Basic
セキュリティエンジニアリングチェック表

第7章 HTML以外のドキュメント

プレーンテキストファイル
ビットマップ画像
オーディオ/ビデオ
XMLベースのドキュメント
描画不可能なファイルタイプについて一言
セキュリティエンジニアリングチェック表

第8章 ブラウザプラグインを使用したコンテンツ描画

プラグインの起動
ドキュメント描画ヘルパー
プラグインベースのアプリケーションフレームワーク
Sun Java
ActiveXコントロール
その他のプラグインとの共存
セキュリティエンジニアリングチェック表

第II部 ブラウザのセキュリティ機能

第9章 コンテンツ分離ロジック

DOMの同一生成元ポリシー
XMLHttpRequestにおける同一生成元ポリシー
Webストレージと同一生成元ポリシー
クッキーのセキュリティポリシー
プラグインのセキュリティ規則
曖昧な生成元と意図とは異なる生成元のコピー
その他の生成元
セキュリティエンジニアリングチェック表

第10章 生成元の継承

about:blankで生成元を継承する
data:URLでの継承
javascript:URLとvbscript:URLにおける継承
制約を受ける擬似URLについて一言
セキュリティエンジニアリングチェック表

第11章 同一生成元規則以外のこと

ウィンドウとフレームのインタラクション
ドメインを超えたコンテンツのインクルード
プライバシーに関連した副チャネル
その他の抜け穴とその使用法
セキュリティエンジニアリングチェック表

第12章 その他のセキュリティ境界

要注意のスキームへのナビゲーション
内部ネットワークへのアクセス
禁止ポート
サードパーティのクッキーを制限する
セキュリティエンジニアリングチェック表

第13章 コンテンツを識別する仕組み

ドキュメントタイプの検出ロジック
文字セットの処理
セキュリティエンジニアリングチェック表

第14章 不正なスクリプトの取り扱い

DoS攻撃
ウィンドウの位置と外観についての問題
ユーザーインターフェイスへのタイミングアタック
セキュリティエンジニアリングチェック表

第15章 外部サイトの特権

権限:ブラウザ管理のサイトとプラグイン管理のサイト
フォームベースのパスワードマネージャー
Internet Explorerのゾーンモデル
セキュリティエンジニアリングチェック表

第III部 次にくるもの

第16章 新たなセキュリティ機能

セキュリティモデル拡張フレームワーク
セキュリティモデルを制約するフレームワーク
その他の発展
セキュリティエンジニアリングチェック表

第17章 その他のブラウザの機構について

URLレベル/プロトコルレベルの提案
コンテンツレベルの機能
I/Oインターフェイス

第18章 広く知られているWebの脆弱性

Webアプリケーションに固有な脆弱性
Webアプリケーション設計時の注意点
サーバーサイドのコードに見られる一般的な問題

付録A エピローグ 付録B リソース
本書は付属データの提供はございません。

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2013年01月28日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷
カバー折り返し
第19章 エピローグ 第20章 リソース
付録A エピローグ 付録B リソース
2012.07.05
1刷 005
下から8行目
そうした脆弱性と共存していくことを学ぶととも、
そうした脆弱性と共存していくことを学ぶとともに、
2012.06.27
1刷 030
図2-1内
login.password
login:password
2012.06.27
1刷 030
下から5行目
多くのブラウザやサードパー階層プリケーションは、
多くのブラウザやサードパーティアプリケーションは、
2012.06.27
1刷 049
上から6行目
view-source:viewsource:javascript:alert(1) とする場合もあります
view-source:view-source:javascript:alert(1) とする場合もあります
2012.06.27
1刷 069
HTTPリクエストの種類の下5行目
なzぜこれがないんでしょう
なぜこれがないんでしょう
2012.07.18
1刷 094
脚注
強調的
協調的
2012.07.26
1刷 096
下から12行目
うまいこと取り込むもできます
うまいこと取り込むこともできます
2012.07.05
1刷 097
本文下から18行目
「<!-」で始まり、「->」で終了します
「<!--」で始まり、「-->」で終了します
2012.07.05
1刷 100
2つ目の網掛部分
<img ... title=' ' onerror=' alert(1)'>
<img ... title=`` onerror=` alert(1)`>
2012.07.05
1刷 104
最終行
XHMLでは危険です
XHTMLでは危険です
2012.07.05
1刷 118
最下行
〓※イコールの上に山カッコ※
^=
2012.06.28
1刷 122
最下行
〓※イコールの上に山カッコ※
^=
2012.06.28
1刷 131
上から2行目
たどり着つくことは
たどり着くことは
2012.07.05
1刷 135
下から8行目
eval("alert(Hi mom!)")
eval("alert(\"Hi mom!\")")
2012.06.29
1刷 148
3つ目の網掛け部分
<img src="test.jpg" alt=" ' 'onload=alert(1)">
<img src="test.jpg" alt="` `onload=alert(1)">
2012.07.05
1刷 148
4つ目の網掛け部分
<img src=test.jpg alt=' ' onload=alert(1)>
<img src=test.jpg alt=``onload=alert(1)>
2012.07.05
1刷 148
本文11行目
バッククォート(‘)
バッククォート(`)
2012.07.05
1刷 148
最終行
適切な振る舞う必要がない
適切に振る舞う必要がない
2012.07.18
1刷 149
上から12行目(2番目の網掛け部分)
top.location.path = "/new_path.html";
top.location.pathname = "/new_path.html";
2012.06.29
1刷 152
下から5行目
setTime(...)のパラメータ
setTimeout(...)のパラメータ
2012.06.29
1刷 154
チェックポイント「<script>ブロック内の単独の文字列」内
「<>」、「>>」
 「<」、「>」
2012.06.29
1刷 159
上から15行目
Apple Quicktime
Apple QuickTime
2012.06.28
1刷 170
上から16行目(NOTE内1行目)
<apple>タグ
<applet>タグ
2012.06.29
1刷 173
12行目
十年以上にわたって、Windows Media Player、RealNetworks RealPlayer、Apple QuickTime はオンラインのマルチメディアを再生するための基盤としての役割を10年ほどにわたって担ってきました
「十年以上にわたって、Windows Media Player、RealNetworks RealPlayer、Apple QuickTime はオンラインのマルチメディアを再生するための基盤としての役割を担ってきました
2012.06.29
1刷 175
上から5行目
とく目立つのがAdobe
とくに目立つのがAdobe
2012.06.29
1刷 177
上から17行目
asfuntion:スキーム
asfunction:スキーム
2012.07.05
1刷 182
網掛部分下から2行目
sheet.SaveAs("c:\spreadsheet.xls");
sheet.SaveAs("c:\\spreadsheet.xls");
2012.07.05
1刷 192
上から3行目
exampl.com など
example.com など
2012.07.05
1刷 206
上から2行目
HTTPのようにしか<見えない
HTTPのようにしか見えない
2012.07.05
1刷 209
2行目(2行目中に2回) 5行目
sameorigin
sameDomain
2012.07.18
1刷 209
13行目
allowScriptAccess=none
allowScriptAccess=never
2012.07.18
1刷 216
下から2行目
〈meta httpequiv="Set-Cookie" ...>
<meta http-equiv="Set-Cookie" ...>
2012.06.28
1刷 216
「ローカルファイル」からの3行目
同一生成ポリシー
同一生成元ポリシー
2012.07.18
1刷 228
下から6行目
javascirpt: URL
javascript: URL
2012.07.18
1刷 235
下から7行目
frmaes[] などのプロパティ
frames[] などのプロパティ
2012.06.28
1刷 236
上から2行目
fames[] プロパティ
frames[] プロパティ
2012.06.28
1刷 240
上から9行目
もってほか
もってのほか
2012.07.18
1刷 241
上から8行目
X-Frame-Options: same-origin
X-Frame-Options: sameorigin
2012.07.18
1刷 268
下から6行目
役割与えられている
役割を与えられている
2012.07.18
1刷 270
上から15行目
.hmtl
.html
2013.01.28
1刷 275
上から5行目
crossdoman.xml ポリシー
crossdomain.xml ポリシー
2012.06.29
1刷 279
最下行
選択を誤るとと
選択を誤ると
2012.06.28
1刷 280
表13-1 UTF-8のBOMシーケンス
xEF 0xBB 0xBF
0xEF 0xBB 0xBF
2012.07.18
1刷 285
すべてのWebサイトのためのよきセキュリティ習慣 チェック項目1
X-Content-Options: nosniff
X-Content-Type-Options: nosniff
2012.06.28
1刷 285
「攻撃者が作成したコンテンツを一部に含むドキュメントを生成する場合」の「チェック項目2」
Context-Typeヘッダ
Content-Typeヘッダ
2012.06.28
1刷 293
脚注4の3行目
InE と Firefox
IE と Firefox
2012.06.29
1刷 293
脚注4の1行目
例外が発生することはありませんん
例外が発生することはありません
2012.07.09
1刷 312
上から4行目
<!--savedfromurl=(0024)http://fuzzybunnies.com/-->
<!--saved from url=(0024)http://fuzzybunnies.com/-->
2012.07.05
1刷 327
本文下から3行目
大胆に変化させるも可能だったので
大胆に変化させることも可能だったので
2012.07.05
1刷 329
本文上から15行目
report-urlキーワード
report-uriキーワード
2012.07.05
1刷 335
NOTE内4行目
混乱がを最小限
混乱が最小限
2012.06.29
1刷 340
上から11行目
XSS-Protection: 1; mode=block
X-XSS-Protection: 1; mode=block
2012.06.28
1刷 342
チェック項目「XSSフィルタリング」
XSS-Protection: 1; mode=block
X-XSS-Protection: 1; mode=block
2012.06.28
1刷 342
チェック項目「XSSフィルタリング」
XSS-Protection: 0
X-XSS-Protection: 0
2012.06.28
1刷 351
上から5行目
略称はCWD
略称はCWE
2013.01.28
1刷 352
上から3行目
クロスサイトスクリプトインジェクション
クロスサイトスクリプトインクルージョン
2012.06.28
1刷 353
下から7行目
キャッシュポインゾニング
キャッシュポイゾニング
2012.06.28

感想・レビュー

くらーく さん

2016-03-19

中身が濃いな。実際にソフトウェアを作っている人は、なんでこんな仕様なんだ、と怒っているだろうなぁ。でも、それが世の常なんだよなあ。切り捨てて欲しいよな、レガシーは。

N3 さん

2016-12-22

web関連のセキュリティーに関する内容が非常に詳細に書かれている。頭に入ってきづらい文体で書かれていて、2/3あたりで読むのをやめてしまった。内容としては、頭に入っていると開発時に役立つと思うので、必要な項目を都度読んでいく用途にはいいかも。

cluclu_land さん

2014-06-01

Same Origin Policy部分のリファレンスとして利用。ネット記事探すより、これだけで何とかなった。