目次〜.indd

Similar documents
WEBシステムのセキュリティ技術

内容 ( 演習 1) 脆弱性の原理解説 基礎知識 脆弱性の発見方法 演習 1: 意図しない命令の実行 演習解説 2

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

Microsoft Word 基_シラバス.doc

目次 1. エグゼクティブサマリー 総合評価 総評 内在するリスク 情報漏洩 サービス妨害 対策指針 早急の対策 恒久的な対

6-3.OS セキュリティに関する知識 OS のセキュリティ機能として必要な機能と オープンソース OS とし Ⅰ. 概要てもっとも利用が期待される Linux のセキュリティ管理に関して 電子メール Web CGI DNS などの具体的な管理手法について学ぶ Ⅱ. 対象専門分野職種共通 Ⅲ. 受講

SOC Report

Apache-Tomcat と 冗長な UTF-8 表現 (CVE 検証レポート ) 2008 年 08 月 26 日 Ver. 0.1

— intra-martで運用する場合のセキュリティの考え方    

SOC Report

第2回_416.ppt

SAMBA Stunnel(Mac) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxxxx 部分は会社様によって異なります xxxxx 2 Mac OS 版ダウンロー

2. 動的コンテンツとは動的コンテンツとは Web ブラウザからの要求に応じて動的に Web ページや画像などを生成する Web コンテンツのことをいいます Web で利用するサーチエンジンやアクセスカウンタ等は この仕組みを用いています 動的コンテンツは大きく次の二つに分類されます (1) Web


Si 知識情報処理

共通フィルタの条件を設定する 迷惑メール検知 (SpamAssassin) の設定 迷惑メール検知 (SpamAssassin) とは.

ムの共有アドレス帳 インスタント メッセージングの宛先に活用することも考えられる 統合アカウント管理 認証 認可 ( アクセス制御 ) の機能 サービス機能 サービス定義統合アカウント管理利用者の認証情報 ( ユーザ ID パスワード) と属性情報 ( グループ 所属部門等 ) を一元的に管理する機

目次 はじめに サービス内容 管理者機能 利用者機能

[投影版]見つけられやすい脆弱性とウェブフレームワークに求められるセキュリティ対策_

SOC Report

SAMBA Stunnel(Windows) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxx 部分は会社様によって異なります xxxxx 2 Windows 版ダウンロード ボ

McAfee Application Control ご紹介

メール設定

オープンソース・ソリューション・テクノロジ株式会社 会社紹介

PALNETSC0184_操作編(1-基本)

Oracle Web CacheによるOracle WebCenter Spacesパフォーマンスの向上

Microsoft IISのWebDAV認証回避の脆弱性に関する検証レポート

PowerPoint プレゼンテーション

アルファメールプレミア 移行設定の手引き

2011 年第 3 四半期脆弱性対策情報データベース JVN ipedia の登録状況 ( 詳細 ) 1. 脆弱性対策情報の登録状況 1.1 今四半期に登録した脆弱性の種類別件数 す 別紙 2 共通脆弱性タイプ一覧 CWE ( *12) は 脆弱性の種類を識別するための共通の脆弱性タイプの一覧で C

ご利用のブラウザのバージョンによっては 若干項目名が異なる場合があります 予めご了承ください Windows をお使いの場合 [ 表示 ] [ エンコード ] [ 日本語 ( 自動選択 )] を選択 [ 表示 ] [ エンコード ] [Unicode(UTF-8)] を選択 Firefox をご利用

SOC Report

別添 2 SQL インジェクション ぜい弱性診断で最低限行うべき項目 1 ( ' ( 検索キー )''-- ( 検索キー ) and 'a'='a ( 検索キー ) and 1=1 は最低限 行うこと ) OS コマンドインジェクション 2 (../../../../../../../bin/sle

2.2 Reflected XSS 攻撃攻撃者の用意した悪意のあるリンクとターゲットサーバが同じホストである場合の Reflected XSS 攻撃を, 本稿では Reflected XSS 攻撃と呼ぶ. 例えば, サーバ A の target.php に Reflected XSS 脆弱性があった

べきでない悪意のあるSQL 文が攻撃者から入力された場合 データベースで実行される前にSQL 文として処理されないよう無効化する必要がありますが ( 図 1 1) 無効化されずにデータベースで実行された場合 データベースの操作が可能となります ( 図 1 2) 本脆弱性を悪用するとデータベース接続ユ

9. システム設定 9-1 ネットワーク設定 itmはインターネットを経由して遠隔地から操作を行ったり 異常が発生したときに電子メールで連絡を受け取ることが可能です これらの機能を利用するにはiTM 本体のネットワーク設定が必要になります 設定の手順を説明します 1. メニューリスト画面のシステム設

スライド 1

SinfonexIDaaS機能概要書

SQL インジェクションの脆弱性

付録 2 システムログ一覧 () 攻撃経路 1. ファイアウォール (FW) ネットワーク型 IPS/IDS Web サーバ AP サーバ DB サーバ プロキシサーバ エラーログ SSL ログ AP ログ ホストログ 非 日時 ファイアウォールホスト名 ファイアウォールルール名及び番号 インバウン

グループ一覧を並び替える すべてのユーザー グループの並び順を変更する ユーザーの登録

金融工学ガイダンス

IM-SecureSignOn

1. 信頼済みサイトの設定 (1/3) この設定をしないとレイアウト ( 公報 ) ダウンロードなどの一部の機能が使えませんので 必ず設定してください 1 Internet Explorer を起動し [ ツール ]-[ インターネットオプション (O)] を選択します 2 [ セキュリティ ] の

label.battery.byd.pdf

SOC Report

PC にソフトをインストールすることによって OpenVPN でセキュア SAMBA へ接続することができます 注意 OpenVPN 接続は仮想 IP を使用します ローカル環境にて IP 設定が被らない事をご確認下さい 万が一仮想 IP とローカル環境 IP が被るとローカル環境内接続が行えなくな

Outlook Express 6 の場合 (Windows XP) Outlook Express 6 の場合 (Windows XP) Windows XP に付属する Outlook Express 6 に αweb のメールアカウントを追加する方法についてご案内します 1 スタート をクリッ

Shareresearchオンラインマニュアル

SAMBA Remote(Mac) 編 PC にソフトをインストールすることによって OpenVPN でセキュア SAMBA へ接続することができます 注意 OpenVPN 接続は仮想 IP を使用します ローカル環境にて IP 設定が被らない事をご確認下さい 万が一仮想 IP とローカル環境 IP

目的 概要 全体像 概念図 用語の定義 用語 説明 用語 説明 用語 説明 用語 説明 参考資料

金融工学ガイダンス

第 7 回の内容 動的な Web サイト フォーム Web システムの構成

P.2 もくじ 8. ファイルのアップロードとダウンロード 8-. ファイルのアップロード 8-2. ファイル指定でアップロード 8-3. Zip 解凍アップロード 8-4. ドラッグ & ドロップで一括アップロード 8-5. ファイルのダウンロード 9. ファイルの送信 ( おすすめ機能 ) 9-

(8) [ 全般 ] タブをクリックします (9) [ インターネット一時ファイル ] の [ 設定 ] ボタンをクリックします (10) [ 保存しているページの新しいバージョンの確認 ] から [ ページを表示するごとに確認する ] をクリックします (11) [OK] ボタンをクリックしていき

Windows Server 2003 におけるPrint Manager V6.0L10の留意事項

( 目次 ) 1. Joomla! インストールガイド はじめに 制限事項 サイト初期設定 Joomla! のインストール はじめに データベースの作成 Joomla! のインストール...

金融工学ガイダンス

Active Directory フェデレーションサービスとの認証連携

安全なウェブサイトの作り方 7 版 の内容と資料活用例 2

Microsoft Word - XOOPS インストールマニュアルv12.doc

2006

目次 1. PDF 変換サービスの設定について )Internet Explorer をご利用の場合 )Microsoft Edge をご利用の場合 )Google Chrome をご利用の場合 )Mozilla Firefox をご利

新環境への移行手順書

MRS-NXシリーズご利用ガイド

ロイロノートスクールクラウド版表 クラウド サービス利 弊社が 意しているクラウドサービスへ接続し利 するシンプルなプランです サービスだけで利 することができます プラン 保存可能な容量 / ユーザー 額の場合 / ユーザー 年額の場合 / ユーザー 共 タブレット向け 1 0.8GB 40 円

SQLインジェクション・ワームに関する現状と推奨する対策案

Office365 AL-Mail

Cisco CSS HTTP キープアライブと ColdFusion サーバの連携

Webアプリケーションを守るための対策

SOC Report

FTP 共有を有効にする あらかじめ作成済みの共有フォルダーを FTP 共有可能にする設定を説明します 共有フォルダーの作成方法は 画面で見るマニュアル をご覧ください ファイル数の多い共有フォルダーを変更すると 変更が完了するまでに時間がかかる場合があります また 変更が完了するまで共有フォルダー

緊急対応から見た、Webサイト用データベースセキュリティ対策

クライアント証明書インストールマニュアル

メール利用マニュアル (Web ブラウザ編 ) 1

クイックマニュアル(利用者編)

サービス内容 サービス内容 ドメインサービス Web サービスのサービス内容についてご案内します このたびは ドメイン /Web サービスをお申し込みいただきまして 誠にありがとうございます 本冊子は ドメイン /Web サービスの運用を管理される方向けの内容で構成されております お客様のご利用環境

Microsoft Word - koutiku-win.doc

eYACHO 管理者ガイド

2 目次 1 はじめに 2 システム 3 ユーザインタフェース 4 評価 5 まとめと課題 参考文献

OSSTechプレゼンテーション

使用する前に

オープンソース・ソリューション・テクノロジ株式会社 会社紹介

Mobile Access簡易設定ガイド

SOC Report

インストール手順 2 セットアップの種類 [ 標準インストール (S)] [Thunderbird を既定のメールプログラムとして使用する (U)] にチェックを入れ [ 次へ (N)] をクリックします インストール手順 3 セットアップ設定の確認 [ インストール (I)] をクリックします 2

KDDI ホスティングサービス G120 KDDI ホスティングサービス G200 WordPress インストールガイド ( ご参考資料 ) rev.1.2 KDDI 株式会社 1

GlobalFlow5 Ver.1.00R04 リリースノート

iStorage ソフトウェア VMware vCenter Plug-in インストールガイド

PowerPoint プレゼンテーション

版数 更新日 更新理由 /12/21 初版制定 /7/25 平成 28 年度初版制定 /8/7 平成 29 年度初版制定 /11/13 機能追加に伴い以下の箇所を更新 4 ログイン を更新 6 コメント対象情報参照 を更新 7 新規コメ

ServerView Resource Orchestrator V3.0 ネットワーク構成情報ファイルツール(Excel形式)の利用方法

WebARENA SuiteX V2 EC-CUBE 2.13 インストールマニュアル ( 標準 MySQL+ 非 SSL ) 作成 :2014 年 2 月 Ver.1.1

Cuoreテンプレート

shio_ PDF

Microsoft Word - Release_IDS_ConnectOne_ _Ver0.4-1.doc

i

Microsoft Word - Webシステム/Webアプリケーション セキュリティ要件書 docx

<4D F736F F D2089E696CA8F4390B35F B838B CA816A>

改訂履歴 改訂日 バージョン 作成者 2014/1/1 Ver VALTES 初版作成 改訂内容及び理由

Transcription:

目次 1 はじめに 3 1. 1 本書の目的 3 1. 2 セキュリティ ホールの一生 5 1. 2. 1 フルディスクロージャという思想 6 1. 3 セキュリティの階層 8 2 HTTP 通信の基礎 21 2. 1 Web アプリケーションとネットワーク 21 2. 2 階層化されている通信プロトコル 22 2. 3 HTTP 26 2. 4 パケットキャプチャによって 実際に確認する 27 2. 5 パケットキャプチャから見た GET と POST の違いを実際に確認する 35 2. 6 クライアント側の入力制限とセキュリティ 38 2. 6. 1 クライアント側の入力制限はセキュリティ対策ではない 38 2. 6. 2 名前 をデータとして使う場合のセキュリティ対策忘れに注意 39 2. 7 CGI プログラムから見た GET と POST の違い 39 2. 8 クエリ文字列と Referer 情報による漏洩 41 2. 8. 1 クエリ文字列と Referer 情報による漏洩 41 2. 8. 2 クエリ文字列を外部 Web サイトに漏洩させない方法 42 3 HTTP セッション管理となりすまし 46 3. 1 HTTP はステートレスなプロトコル 46 3. 2 HTTP セッション管理機能の歴史的経緯 47 3. 2. 1 HTTP セッション管理機能の歴史的経緯 47 3. 2. 2 REMOTE_ADDR を使う ( 非推奨 ) 48 3. 2. 3 ログと IP アドレス 49 3. 2. 4 TOR( 蛇足 : ログと IP アドレス ) 50 11 目次.indd 11 08.3.24 6:09:31 PM

3. 2. 5 HTTP_Referer を使う ( 非推奨 ) 51 3. 2. 6 Hidden クエリや Cookie 情報にデータを保持させる ( 非推奨 ) 52 3. 3 セッション ID によるセッション管理 53 3. 3. 1 セッション ID によるセッション管理 ( 現在の主流 ) 53 3. 4 既存のセッション管理機能 55 3. 4. 1 既存のセッション管理機能を使う 55 3. 4. 2 既存のセッション管理機能を使う上での注意点 ( セッション タイムアウト値 ) 56 3. 4. 3 AJAX と最小タイムアウト値 ( 蛇足 ) 57 3. 4. 4 既存のセッション管理機能を使う上での注意点 ( 明示的なセッション破棄ページ )58 3. 5 Session Fixation( セッション固定化攻撃 ) 58 3. 5. 1 Session Fixation( セッション固定化攻撃 ) 58 3. 5. 2 ブラウザが提示したセッション ID をそのまま採用する Web アプリケーション サーバ 60 3. 5. 3 セッション ID をクエリ文字列で保持する Web アプリケーション サーバ 63 3. 5. 4 常時 セッション ID を提示してくれる Web アプリケーション サーバ 64 3. 5. 5 Cookie Monster (CrossDomain Cookie Injection) 65 3. 6 セッション ID の安全性 66 3. 6. 1 推測困難なセッション ID を盗み出す Cross-Site Scripting 攻撃 66 3. 6. 2 セッション ID には推測困難性が必須 66 3. 7 ワンタイムなセッション ID 68 3. 7. 1 ワンタイムなセッション ID 68 3. 7. 2 ワンタイムなセッション ID を使う上での注意点 69 3. 8 セッション ID の分散 70 3. 8. 1 セッション ID の分散 70 3. 8. 2 既存と自作にセッション ID を分散させる 71 3. 9 改ざん検知ハッシュ値と HMAC という考え方 72 3. 9. 1 単純な改ざん検知ハッシュ値は危険 72 3. 9. 2 HMAC という考え方 75 4 CSRF とアクセス制御 77 4. 1 CSRF( クロスサイト リクエスト フォージェリ ) 77 4. 1. 1 CSRF(Cross-Site Request Forgeries) 77 12 目次.indd 12 08.3.24 6:09:31 PM

4. 1. 2 CSRF 攻撃の対策 ( 推測困難なトークンとパスワードの再入力 ) 79 4. 1. 3 CSRF 攻撃のトークンとセッション ID 81 4. 1. 4 フレームワークに実装している CSRF 攻撃対策機能を使おう 83 4. 1. 5 CSRF 攻撃の対象となる Web ブラウザの機能 83 4. 2 アクセス制御 84 4. 3 静的コンテンツへのアクセス制御 89 5 メモリ破壊バグとその対策 91 5. 1 メモリ破壊バグとは 91 5. 2 バッファ オーバーフロー 92 5. 2. 1 スタック領域におけるバッファ オーバーフロー 93 5. 2. 2 たった 1byte のバッファ オーバーフローで制御を奪うことは可能か? 98 5. 2. 3 ヒープ領域におけるバッファ オーバーフロー 101 5. 2. 4 malloc chunk corruption ( ヒープ領域におけるバッファ オーバーフ ローの一例 ) 101 5. 3 バッファ オーバーフローの対策 103 5. 4 バッファ オーバーフローの対策の注意点 106 5. 4. 1 バッファ オーバーフロー バグを発生させやすい 注意すべき関数 106 5. 4. 2 終端文字の問題 107 5. 4. 3 コンパイル オプションの問題 110 5. 4. 4 バッファ アンダーフロー 111 5. 5 Integer オーバーフロー 111 5. 6 フォーマットストリング バグ 116 5. 7 フォーマットストリング バグへの対策 119 5. 8 メモリ破壊バグのまとめ 120 6 インジェクション系セキュリティ ホールとその対策 122 6. 1 はじめに 122 6. 1. 1 最初に結論を書いてみた 122 6. 1. 2 エスケープ処理がインジェクション系セキュリティ ホールへの基本対策 124 6. 1. 3 攻撃者が操作できないデータのエスケープの必要性 125 13 目次.indd 13 08.3.24 6:09:32 PM

6. 1. 4 バリデート + エスケープ = サニタイズ 126 6. 1. 5 エスケープ処理はどの時点で行うべきか 128 6. 1. 6 まとめ 133 6. 2 XSS(Cross-Site Scripting) 133 6. 2. 1 XSS(Cross-Site Scripting) の概略 133 6. 2. 2 XSS(Cross-Site Scripting) の実例 137 6. 2. 3 XSS(Cross-Site Scripting)= 掲示板攻撃 141 6. 2. 4 XSS(Cross-Site Scripting) により想定される被害例 142 6. 2. 5 XSS(Cross-Site Scripting) 対策の基本 148 6. 2. 6 XSS(Cross-Site Scripting) 対策で使える HTML エンコード関数 149 6. 2. 7 XSS(Cross-Site Scripting) 対策で使える Web アプリケーションの機能 150 6. 2. 8 注意したい XSS(Cross-Site Scripting) の対策漏れ 155 6. 2. 9 XSS(Cross-Site Scripting) の対策 JavaScript の一部として使う場合 159 6. 2. 10 特殊な XSS の実例 167 6. 3 SSI インジェクション 169 6. 4 文字のエスケープと文字列の監視 174 6. 5 スクリプトのコメント 177 6. 6 OS Command インジェクション 178 6. 6. 1 OS Command( 外部コマンド ) とは 178 6. 6. 2 シェルプログラムによる別コマンドの実行 180 6. 6. 3 コマンド引数の強制指定 182 6. 6. 4 隠れた OS Command 呼び出し 184 6. 6. 5 OS Command インジェクションの対策 187 6. 6. 6 OS Command インジェクションのためのエスケープ処理 189 6. 6. 7 OS Command インジェクションのためのエスケープ処理 (Linux 上の bash と tcsh) 192 6. 6. 8 OS Command インジェクションのためのエスケープ処理 (MS- WindowsNT 系列の cmd.exe) 195 6. 6. 9 OS Command インジェクションの対策 (PHP の escapeshellarg() 関数と escapeshellcmd() 関数 ) 200 6. 7 Script インジェクション eval() 関数への攻撃 201 6. 8 SQL インジェクション 203 6. 8. 1 SQL インジェクションの概略 203 14 目次.indd 14 08.3.24 6:09:32 PM

6. 8. 2 SQL 文の文字列リテラルとして使う場合 204 6. 8. 3 SQL 文の文字列リテラルとして使う場合 ( 対策編 ) 208 6. 8. 4 SQL エスケープ処理のための関数 210 6. 8. 5 SQL エスケープ処理の例外 mysql と PostgreSQL 212 6. 8. 6 SQL 文の数値として使う場合 213 6. 8. 7 SQL 文の数値として使う場合 ( 対策編 ) 217 6. 8. 8 数値として適切かどうかを確認する関数 219 6. 8. 9 SQL エスケープとデータ型チェックを自動で行う方法 ( 準備済み SQL 文 パラメータクエリ ) 220 6. 8. 10 SQL 文中のテーブル名や カラム名に入力データを配置させる場合 224 6. 8. 11 データベースに対しての負荷攻撃 226 6. 8. 12 データベース サーバでのアクセス権限もセキュリティ上重要 227 6. 8. 13 エラー画面を Web ブラウザに出さないこともセキュリティ上重要 229 6. 8. 14 Blind SQL インジェクションという驚異的攻撃手法 231 6. 8. 15 CSV 形式のデータに対しての攻撃手法 240 6. 8. 16 CakePHP フレームワーク特有の比較演算子インジェクション 242 6. 8. 17 Jet データベースへの OS Command インジェクション ( 過去の話題 ) 244 6. 9 LDAP インジェクション 245 6. 10 XPATH/XQuery インジェクション 255 6. 10. 1 XPATH/XQuery インジェクション 255 6. 11 Null インジェクション 257 6. 11. 1 Null インジェクションとは 257 6. 11. 2 Null インジェクションの対策 260 6. 11. 3 Null インジェクションの環境ごとの差異 261 6. 11. 4 Null インジェクション対策 ( ライブラリによる対策 ) 262 6. 12 CRLF インジェクション 263 6. 12. 1 CRLF インジェクションとは 263 6. 12. 2 CRLF インジェクション (HTTP ヘッダへのインジェクション ) 264 6. 12. 3 CRLF インジェクション ( 電子メールに対してのインジェクション ) 267 6. 12. 4 CRLF インジェクションのまとめ ( その他のプロトコルへの応用 ) 271 15 目次.indd 15 08.3.24 6:09:32 PM

7 ファイル パスと URL 272 7. 1 ファイルを安全に扱うために 272 7. 2 絶対パス指定の問題 273 7. 2. 1 絶対パス指定の問題 273 7. 2. 2 ネットワーク上のファイルを扱う 275 7. 3 ディレクトリ トラバーサル 277 7. 3. 1 ディレクトリ トラバーサルとは 277 7. 3. 2 ディレクトリ トラバーサルの対策 ( 基本 ) 279 7. 3. 3.. の監視は文字列の監視 / または の監視は文字の監視 282 7. 3. 4 手動でファイル パスの正規化を行う 284 7. 3. 5 関数を使ってファイル パスの正規化を行う 286 7. 3. 6 ディレクトリ トラバーサルの対策 ( まとめ ) 287 7. 4 NTFS とセキュアなファイル パスの取り扱い 288 7. 5 拡張子による制限 296 7. 6 ファイル名として許可されている文字や ファイル名の長さ 297 7. 7 ファイル アップロードとファイル名 300 7. 8 perl の open() 関数の場合 301 7. 9 IIS+ASP の 親のパスの有効化 オプション 305 7. 10 URL パスへ応用 310 7.10.1 ファイル パスの考えを URL パスにも応用する 310 7.10.2 蛇足 :URL と URI 310 7.10.3 URL の先頭はハードコーディングすること 311 7.10.4 URL の先頭は スキーム名 ホスト名までハードコーディングすること 311 7.10.5 Web 仮想ルートパスの / の重複( 相対パス指定時 ) 313 7.10.6 URL へ汚染データを埋め込むときは URL エンコードを行うこと 314 8 その他のセキュア プログラミング TIPS 315 8. 1 Web アプリケーションの各種ファイルの配置方法と最小権限の原則 315 8. 1. 1 Web アプリケーションの各種ファイルの配置方法 315 8. 1. 2 アクセス権はファイルにではなく ディレクトリに設定する 316 8. 2 乱数とセキュリティ 317 16 目次.indd 16 08.3.24 6:09:32 PM

8. 2. 1 乱数 317 8. 2. 2 rand () 関数を使う上での注意点 318 8. 2. 3 rand () 関数よりも推測困難な乱数関数を使用する 320 8. 2. 4 有効ビット数という考え方 323 8. 2. 5 推測困難な値の文字列長は長ければ長いほど安全性は高い 325 8. 3 暗号 ハッシュ 328 8. 3. 1 ハッシュ関数 暗号関数を使う 328 8. 3. 2 ハッシュ関数 暗号関数を使う上での注意点 332 8. 3. 3 RainbowCrack 334 8. 4 ユーザ アカウントのパスワード最大長 335 8. 5 DPAPI(Data Protection API) 336 8. 6 クライアント認証 337 8. 6. 1 クライアント認証とは 337 8. 6. 2 クライアント認証を実装する上での注意点 339 8. 6. 3 クライアント認証と IIS+ASP の Request オブジェクト 341 8. 6. 4 クライアント認証と IIS+ASP の Request オブジェクトから読み取れ る言語全般にわたる教訓 344 8. 7 Cookie の各種プロパティ 345 8. 7. 1 Cookie の secure オプション 345 8. 7. 2 Cookie の httponly オプション 350 8. 7. 3 その他の Cookie のオプション (Domain Path) 352 8. 8 圧縮ファイルとセキュリティ 352 8. 8. 1 伸張サイズ 353 8. 8. 2 展開先ディレクトリ 353 8. 8. 3 コンピュータウィルス チェック 353 8. 8. 4 伸張されたファイルのファイル名 354 8. 9 正規表現とセキュリティ 354 8. 10 クレジットカードのチェックサム 356 8. 11 文字コードによるサニタイジング回避テクニック 357 8. 11. 1 文字コードによるサニタイジング回避テクニックとは 357 8. 11. 2 Shift-JIS によるサニタイジング回避テクニック 357 8. 11. 3 UNICODE を使ったサニタイジング回避テクニック 359 17 目次.indd 17 08.3.24 6:09:33 PM

9 その他の Web アプリケーション開発時の注意事項 368 9. 1 そもそも Web アプリケーションである必要性はあるのか? 368 9. 2 画面デザイン上の問題 369 9. 2. 1 ポップアップする Web ページ ( 特にログイン画面 ) 369 9. 2. 2 ブラウザのアドレス欄 ステータスバーを表示したままにしておく 370 9. 2. 3 内部フレームに他の Web サイトのページを表示する 370 9. 3 ユーザ認証とエラー メッセージ そしてパスワード リマインダのメッセージ 371 9. 4 SSL のバージョン 372 9. 5 SSL の強制 373 9. 5. 1 概要 373 9. 5. 2 Apache の場合 373 9. 5. 3 IIS の場合 374 9. 6 SSL 証明書の信頼性 374 9. 7 その他の SSL 設定の問題 375 9. 7. 1 フレーム内部の SSL ページ 375 9. 7. 2 非 SSL ページから送信する Web ページ 376 9. 8 コンピュータウィルス チェック 376 9. 9 デフォルト コンテンツの削除 377 9. 9. 1 Apache の場合 377 9. 9. 2 IIS の場合 377 9. 9. 3 JavaServlet エンジンの場合 378 9. 10 ディレクトリ リスティングと既定コンテンツ 379 9. 10. 1 Apache の場合 379 9. 10. 2 IIS の場合 379 9. 11 OS ユーザの存在有無の脆弱性 381 9. 11. 1 Apache の場合 381 9. 12 TRACE メソッドの禁止 382 9. 12. 1 Apache の場合 382 9. 12. 2 IIS の場合 382 9. 13 プライベート IP アドレスの漏洩を防御する 383 9. 13. 1 IIS の場合 (content-location) 383 9. 13. 2 IIS の場合 (realm) 383 18 目次.indd 18 08.3.24 6:09:33 PM

9. 14 特定のファイルを読み出し禁止の設定にする 384 9. 14. 1 PHP の場合 384 9. 14. 2 Apache の場合 384 9. 14. 3 IIS の場合 385 9. 15 Web サーバ上でのアクセス権限について 386 9. 15. 1 スクリプトと静的コンテンツの分離 386 9. 15. 2 Apache の場合 387 9. 15. 3 IIS で設定できる二つのアクセス権グループ 387 9. 16 不要な拡張子マッピングは削除する 388 9. 16. 1 IIS の場合 388 9. 17 ファイルの存在の確認 389 9. 17. 1 IIS の場合 389 9. 18 拡張子マッピングで メソッドを制限する 390 9. 18. 1 IIS の場合 390 9. 19 エラー表示の抑制 392 9. 19. 1 PHP の場合 392 9. 19. 2 Tomcat の場合 392 9. 19. 3 Apache の場合 393 9. 19. 4 ASP.NET の場合 393 9. 19. 5 IIS の場合 393 9. 19. 6 まとめ 394 9. 20 SSI の設定 394 9. 20. 1 概要 394 9. 20. 2 Apache の場合 395 9. 21 親のパスを有効にする を無効にする 396 9. 21. 1 IIS の場合 396 9. 22 拡張されたファイル パスの抑制 399 9. 22. 1 PHP の場合 399 9. 23 PHP の設定ファイルについて 400 9. 24 PHP イースターエッグによるバージョン漏洩 400 9. 24. 1 PHP の場合 400 9. 25 ファイル アップロードの禁止 400 9. 25. 1 PHP の場合 400 19 目次.indd 19 08.3.24 6:09:33 PM

9. 26 バイナリファイルに保存されている XSS 攻撃コード 401 9. 26. 1 Apache の場合 401 9. 27 クエリ文字列セッション ID の禁止 401 9. 27. 1 PHP の場合 401 9. 27. 2 ASP.NET の場合 402 9. 27. 3 WebSphere の場合 402 9. 28 文字セットの強制 402 9. 28. 1 文字セット自動判断による XSS 攻撃 402 9. 28. 2 IIS の場合 403 9. 29 MS-WindowsNT 系でのログオン情報のキャッシュ 403 9. 30 MS-WindowsNT 系での LM Hash 403 9. 31 携帯向けコンテンツとフィルタリング 404 9. 32 リバース プロキシを使う場合 404 9. 33 メールサーバと Web アプリケーション 405 おわりに 406 索引 407 20 目次.indd 20 08.3.24 6:09:33 PM