marunomaruno-memo

marunomaruno-memo

PHPサイバーテロの技法―攻撃と防御の実際

2010年12月24日 | Weblog
PHPサイバーテロの技法―攻撃と防御の実際 [単行本]
GIJOE (著)

単行本: 239ページ
出版社: ソシム (2005/11)
ISBN-10: 4883374718
ISBN-13: 978-4883374717
発売日: 2005/11
商品の寸法: 23 x 18.4 x 2.6 cm

1 Webアプリケーションのセキュリティとは
2 Webアプリケーションを実際に攻撃してみよう
3 攻撃方法14種類総ざらえ
4 Webアプリケーションセキュリティの理論
5 HTTPセッションから攻撃の本質を知る
6 脆弱性スキャナーを利用する
7 チャート式:脆弱性の見つけ方

「symfony propel-build-all」コマンドを使う場合のデータベースのバックアップとリストア

2010年12月19日 | Weblog
※symfonyのバージョンは1.0

「symfony propel-build-all」コマンドを使う場合のデータベースのバックアップとリストア


「symfony propel-build-all」コマンドでは、データベースの内容が
すべて初期化されます。
したがって、既にあるデータはいったん、バックアップして、
「symfony propel-build-all」コマンドを実行後、リストアする必要が
あります。

そのための手順です。


---
バックアップ
$ mysqldump -u root -p symfony > symfony_database.sql

モデル・テーブル作成
$ symfony propel-build-all

リストア
$ mysql -u root -p symfony < symfony_database.sql
---


できるPRO Apache Webサーバー Apache 2/1.3対応

2010年12月18日 | Weblog
できるPRO Apache Webサーバー Apache 2/1.3対応
http://www.impressjapan.jp/books/2265.php

\2,625 (本体 \2,500+税)
品種名:書籍
発売日:2006/06/15発売
ページ数:272P
サイズ・判型:B5変型判
著者:辻秀典・渡辺高志・鈴木幸敏&できるシリーズ編集部 著
ISBNコード:978-4-8443-2265-8

■第1章 Apacheをインストールしよう
1-1 Apacheってなに? <Apache HTTPサーバー>
・一番使われているWebサーバー
・バージョン2とバージョン1.3の2種類が使われている
1-2 サーバーとどう通信するの? <IPアドレス>
・IPアドレスで互いを指定する
・IPアドレスは4つの数字からなる
・グローバルIPアドレスとプライベートIPアドレス
・直接通信できるのはセグメントの中だけ
・セグメントはネットマスクで表す
1-3 IPアドレスはどう決めるの? <DHCP、NAT>
・DHCPを使えば自動で割り当てられる
・サーバーは固定でIPアドレスを指定する
・NATでLANとインターネットを中継
・ルーターがつながって世界をカバー
1-4 インストールする環境を用意しよう <必要なハードとソフト>
・必要なハードウェア
・OSと構成
・本書で使う環境
1-5 UNIX系OSにインストールするには <UNIX系OSへのインストール>
・OSで用意されたものと自分でソースからコンパイルするもの
・ソースからインストールする場合
・OSで用意されたものをインストールする場合
1-6 Windowsにインストールするには <Windowsへのインストール>
STEP UP <Apacheのバージョンを最新に保つ>

■第2章 Apacheを動かそう
2-1 URLは何を表しているの? <URLの意味>
・URLは複数の指定の集合体
・WebブラウザはURLを分解してアクセスする
2-2 ホスト名ってなに? <名前解決>
・アドレスをホスト名で指定する
・DNSで名前解決する
・ホスト名の構造
・DNSは階層構造で世界をカバーする
・ダイナミックDNS
2-3 設定ファイルを見てみよう <httpd.conf>
・テキストファイルで設定する
・設定ファイルを確認する
2-4 初期設定をしよう <サーバー自身の情報>
・エラーのときにサーバーの情報が必要
・Apache 2の場合
・Apache 1.3の場合
2-5 Apacheを起動しよう <起動と停止>
・デーモンとして動く
・ソースからインストールした場合
・OSで用意しているものをインストールした場合
・Windows版Apache 2の場合
・Windows版Apache 1.3の場合
2-6 アクセスしてみよう <リクエストとレスポンス>
・サーバーにリクエストを送る
・サーバーからレスポンスが返る
・クライアントからアクセスできるようにしてテストしよう
2-7 アクセスの記録を確認しよう <ログファイル>
・サーバーへのアクセスはログファイルに記録される
STEP UP <HTTPの通信内容の確認方法>

■第3章 ページを見せよう
3-1 設定ファイルの構造を知ろう <セクションコンテナ>
・指定の範囲を決める
・設定の優先順位
・ディレクトリ単位で指定する――
・ファイル単位で指定する――
・パス名で指定する――
・ほかの設定ファイルを読み込む――
3-2 HTMLファイルを置こう <ドキュメントルート>
・ドキュメントルート以下にコンテンツを置く
・ファイルを転送するには
3-3 文字コードの設定を変更しよう <AddDefaultCharset>
・文字コードを指定するしくみ
3-4 設定を反映しよう <Apacheの再起動>
・ソースからインストールした場合
・OSで用意されている場合
・Windows版Apache 2の場合
・Windows版Apache 1.3の場合
3-5 インデックスファイルを設定しよう <DirectoryIndex、Indexes>
・index.htmがインデックスファイルに使われない
・インデックスを設定する
3-6 ほかの場所にあるファイルを見せるには <Alias>
・ドキュメントルートの中にないファイルを見せる
3-7 データの種類を追加するには <AddType>
・データの種類はMIMEタイプで表わされる
STEP UP <正規表現を覚えよう>

■第4章 ユーザーごとに公開ディレクトリを作ろう
4-1 ユーザーごとの公開ディレクトリを用意しよう <ユーザーディレクトリ>
・ユーザーごとのディレクトリを公開できる
・ユーザーディレクトリの設定を確認する
・ユーザーディレクトリを作る(UNIX系OSの場合)
・ユーザーディレクトリを作る(Windows版Apache 2の場合)
・ユーザーディレクトリを作る(Windows版Apache 1.3の場合)
・ユーザーデレクトリにアクセスする
・ユーザーごとに許可や禁止をするには
4-2 ディレクトリごとの設定ファイルを使うには <.htaccess>
4-3 複数のサーバーに見せるには <仮想ホスト>
・1台のサーバーに複数のホスト名をつける
・名前ベースの仮想ホスト
・IPベースの仮想ホスト
・仮想ホストを設定する
・仮想ホストにアクセスする
4-4 仮想ホストに別名をつけるには <ServerAlias>
・IPベースの仮想ホストに元のホスト名をつけるには
4-5 ホスト名を指定しないブラウザに対応するには <ServerPathによる仮想ホストの識別>
・パス名で仮想ホストを判断
STEP UP <Webブラウザのキャッシュを制御する>

■第5章 アクセスを制御しよう
5-1 アクセス元を制限するには <アクセス制限>
・アクセス元に対して禁止や許可を設定する
・特定のアクセス元に対してアクセスを禁止する
・特定のアクセス元にだけアクセスを許可する
・アクセス元の指定方法
5-2 Webブラウザの種類を制限するには <Apacheの環境変数>
・リクエストのメッセージヘッダーを見て値を設定する
5-3 リンクを制限するには <リファラー>
・リンク元の情報もサーバーに送られる
5-4 エラーメッセージを変更するには <ステータスコード>
・レスポンスにはステータスコードが付く
5-5 パスワードをかけるには <基本認証>
・登録ユーザーだけアクセスさせる
・認証のしくみ
・パスワードを指定する
5-6 認証してグループ単位で許可するには <ユーザーグループ>
5-7 アクセス制限と認証を組み合わせるには <Satisfy>
・両方の条件に合ったときだけ許可する場合
・どちらかの条件に合えば許可する場合
5-8 URLが変更になったときは <リダイレクト>
・変更先のURLを返す
・一時的にリダイレクトする場合
・引っ越しのためリダイレクトする場合
・URLのパターンでリダイレクトする場合
5-9 ページの言語を自動で切り替えるには <コンテントネゴシエーション>
・言語や文字コードの情報もサーバーに送られる
・品質値で優先度を指定する
・言語や文字コードを自動で切り替える
・言語を切り替える
・文字コードを切り替える
5-10 サーバーの種類を隠すには <ServerTokens、ServerSignature>
・レスポンスにサーバーの情報が入っている
・サーバーが作るページに表示される情報
STEP UP <Apacheで使える認証方法>

■第6章 CGIを使おう
6-1 CGIってなに? <CGIの概要>
・Apacheを通してプログラムを実行するしくみ
・Perlなどでプログラムを作る
・セキュリティに気をつけよう
6-2 CGIを使えるようにするには <ScriptAlias、AddHandler>
・プログラムはダウンロードできない場所に置く
6-3 CGIを使ってみよう <CGIのスクリプト>
6-4 ユーザーディレクトリでCGIを使うには <ScriptAliasMatch>
6-5 状況に応じて動作させるには <環境変数の利用>
6-6 クライアントからデータを受け取るには <GETとPOST>
・Webブラウザからデータを送る
・GETメソッドとPOSTメソッド
・CGIでデータを受け取る
6-7 クライアントにデータを覚えさせるには <Cookie>
・メッセージヘッダーに値を付けて返す
・CGIでCookieを使う
6-8 CGIでページにフィルタをかけるには <ActionによるCGIの呼び出し>
6-9 エラーになったCGIの通信を確認するには <ScriptLog>
STEP UP <Perl以外のスクリプト言語>

■第7章 SSIを使おう
7-1 SSIを使えるようにするには <AddOutputFilter>
・ページの一部の内容を入れ替える
7-2 ファイルやコマンドの出力を組み込むには <include、exec>
・ファイルの内容を組み込む――include file=
・コマンドの出力を組み込む――exec cmd=
・CGIの出力を組み込む――exec cgi=
・URLで指定した先を組み込む――include virtual=
7-3 値を表示するには <echo、config、if>
・値を表示するには――echo
・日時の表示を変えるには――config
・ファイルの情報を表示するには――fsize
・条件で表示を変えるには
7-4 実行権限でSSIを指定するには <XBitHack>
STEP UP <Web画面での操作を快適にするAjax>

■第8章 モジュールで拡張しよう
8-1 モジュールってなに? <Apacheのモジュール>
・モジュールで機能を追加できる
・モジュールの追加方法は2種類ある
・組み込まれているモジュールを調べる
8-2 モジュールを追加するには <モジュールの追加とコンパイル>
・組み込みのモジュールを指定する場合
・DSOのモジュールをダウンロードして追加する場合
・DSOのモジュールをコンパイルする場合
8-3 データを圧縮して送るには <mod_deflate、mod_gzip>
・自動的に圧縮と復元が行なわれる
・Apache 2でmod_deflateを使う
・Apache 1.3でmod_gzipを使う
・そのほかの圧縮設定
8-4 違うURLでアクセスさせるには <mod_rewrite>
8-5 Perlスクリプトを組み込めるようにするには <mod_perlのインストール>
・Apache 2にmod_perl 2をインストールする
・Apache 1.3にmod_perl 1をインストールする
8-6 PerlスクリプトをApacheに組み込むには <mod_perlの利用>
8-7 CGIスクリプトをmod_perlで動かすには <PerlのRegistryモジュール>
STEP UP <さまざまなApacheモジュール>

■第9章 SSLに対応しよう
9-1 暗号化されたWebサーバーを構築するには <SSL>
・SSLで高まるWebサイトのセキュリティ
・CAに認証してもらうしくみ
9-2 SSLをインストールするには <OpenSSL>
・SSLってなに?
9-3 ApacheからSSLを使えるようにするには <mod_ssl>
・Apache 2の場合
・Apache 1.3の場合
9-4 テスト用の証明書を作成するには <サーバー証明書>
・証明書を作る
・Apacheを設定する(Apache 2の場合)
・Apacheを設定する(Apache 1.3の場合)
・クライアントからアクセスする
・本格的にSSLを利用したWebサーバーを運営するには
STEP UP <WebDAVを使ってみよう>

■第10章 ログを活用しよう
10-1 ログをチェックしよう <ログのチェックポイント>
・誰が何にアクセスしているかをチェック
・怪しいアクセスに注意する
・ログの解析ツールもある
10-2 アクセスログの記録項目を変えるには <LogFormat、CustomLog>
・フォーマットの指定方法
10-3 指定した条件でログを分けるには <環境変数による制御>
10-4 エラーログの記録項目を変えるには <LogLevel>
10-5 ログ中のIPアドレスをホスト名に変えるには <logresolve>
10-6 Cookieでユーザーを追跡するには <mod_usertrack>
10-7 ログを1日単位で切り替えるには <ログのローテーション>
・rotatelogsコマンドを使う場合
・OSの標準機能を使う場合
STEP UP <ログ解析ツールを使おう>

■第11章 サーバーを管理しよう
11-1 セキュリティに気をつけよう <セキュリティ対策>
・インターネットのサーバーはスキャンや攻撃を受ける
・Apacheで気をつけるべきこと
・その他の危険
11-2 動作状態をWebブラウザで確認するには <mod_status、mod_info>
・動作状況を確認する――mod_status
・設定情報を確認する――mod_info
11-3 サーバーの動作状態を確認するには <OSの観察>
・CPUの負荷の状態を見る
・プロセスの状態を見る
・ネットワークカードの状態を見る
・ネットワークがつながっているかを確認する
・ネットワークに関する状態を見る
・OSのログを見よう
11-4 ロボットからのアクセスを制限するには <robots.txt>
・収集されたくないディレクトリをrobots.txtで指定
・HTMLのmetaタグでも指定できる
11-5 性能を向上させるには <パフォーマンスチューニング>
・不要な設定を削れば性能は向上する
・ベンチマークでApacheの性能を測定しよう
・Keep-Aliveの調整
・待ち受けプロセス数の調整
・ApacheのMPMを選ぶ
・CGIやSSIを見直す
STEP UP <携帯向けサイトの違い>

■付録 設定項目リファレンス

バグ攻略で極めるWeb開発のツボ 現場で必要不可欠なバッドノウハウ

2010年12月13日 | Weblog
バグ攻略で極めるWeb開発のツボ 現場で必要不可欠なバッドノウハウ [大型本]
山城 拓明 (著), 渡利 良太郎 (著)
http://www.seshop.com/product/detail/10558/

大型本: 336ページ
出版社: 翔泳社 (2009/6/9)
言語 日本語
ISBN-10: 4798119091
ISBN-13: 978-4798119090
発売日: 2009/6/9
商品の寸法: 23 x 18 x 2.4 cm


序章 本書の読み方

Webシステムのバグ
Webシステムと本書の構成
PHP/JSPの基本構文
本書を読む上での注意点
Bug No.000 普通のバグ「不等号の記述ミス」

第1章 ブラウザとHTML

Bug No.001 テーブル上部の謎のスペース
Bug No.002 IEだけそろってくれない表示幅
Bug No.003 長文が送信できない問い合わせフォーム
Bug No.004 入力値の後半が消えるテキストボックス
Bug No.005 改行がどんどん増えるテキストエリア
Bug No.006 オフにできないチェックボックス
Bug No.007 [Enter]キーでの送信は更新されない更新画面
Bug No.008 外部JavaScriptファイルの修正が反映されない現象
Bug No.009 URLとファイルパスのバグ

第2章 JavaScriptと入力チェック

Bug No.010 表示データが1件のときだけ誤動作する必須チェック
Bug No.011 JavaScriptのグローバル変数汚染
Bug No.012 全角文字が素通りする半角英数字チェック
詳細解説  正規表現の利用例
Bug No.013 標準関数を使った数値チェックのバグ
Bug No.014 合計金額を再計算してくれない注文画面
詳細解説  Webシステムの入力チェック

第3章 PHP

Bug No.015 正しくないパスワードでログインできる認証処理
詳細解説  PHPでの比較の注意
Bug No.016 ログインIDもパスワードもなしでログインできる認証処理

第4章 Java

Bug No.017 他人の個人情報が見える会員情報画面
Bug No.018 日付のフォーマット処理でたまに発生する例外
詳細解説  サーバサイドJavaで書いてはいけない変数
Bug No.019 JSPを元に戻したのに画面が元に戻らない
Bug No.020 22億円の売上目標が達成できない財務システム
詳細解説  Javaの金額計算にはどの型を使うべきか
詳細解説  バグコード自動検出ツールFindBugs

第5章 データベースとSQL

Bug No.021 受注データが表示されなくなったバグ
Column:筆者の経験談 INのリストの上限超えバグ
Bug No.022 「_」が検索できないメールアドレス検索
Bug No.023 本日の売上が検索できない売上実績一覧画面
Bug No.024 時分秒が欠落するバグ(Oracle-JDBCドライバ)
詳細解説  日付と時刻のバグいろいろ
Column:筆者の経験談 飛行機墜落?ミサイル誤射?2000年問題の脅威
Bug No.025 予想外に遅い頭文字検索画面
詳細解説  SQLチューニングはじめの1歩
Bug No.026 楽観的ロックでの初期化漏れバグ
Bug No.027 300回表示するとシステムがダウンする検索画面
詳細解説  リソースリークの検出方法
Column:筆者の経験談 リソースリークの犯人は・・・

第6章 セキュリティ対策

Bug No.028 SQLインジェクション対策ミス!書き込みがすべて消えた掲示板
Bug No.029 スクリプトインジェクション攻撃によるなりすまし被害
Bug No.030 クロスサイトリクエストフォージェリ攻撃による強制投稿
詳細解説  Webシステムのセキュリティ対策

第7章 文字化けと文字コード

Bug No.031 metaタグを書いても文字化けが直らない
Bug No.032 新サーバで文字が化けたり「~」が逆になったり
詳細解説  文字コードと文字化け
Bug No.033 ダウンロードCSVの謎の点「・」
詳細解説  ファイルダウンロード機能の注意点

終章 バグにハマらないために

没バグ集
汎用的なバグの予防方法
本書のまとめ(最後に)