入門 PHP セキュリティ
久しぶりに PHP のコードを触ることになったので、復習の意味もかねて読んだ。
付録を除けば100ページに満たない薄さの本にコンパクトにおさまっているので、非常に読みやすい。
薄いのだけど説明は抽象的ではなく、XSS や CSRF などをコード例を示しつつ具体例を交えて説明しているので、リファレンス的に使えて重宝します。
目次
序文
はじめに1章 導入
1.1 PHPの特徴
1.2 原理
1.3 実践2章 フォームとURL
2.1 フォームとデータ
2.2 セマンティックURL攻撃
2.3 ファイルアップロード攻撃
2.4 クロスサイトスクリプト攻撃
2.5 クロスサイトリクエストフォージ
2.6 偽装フォームのサブミット
2.7 HTTPリクエストの偽装3章 データベースとSQL
3.1 アクセス証明書の流出
3.2 SQLインジェクション
3.3 データの流出4章 セッションとクッキー
4.1 クッキー泥棒
4.2 セッションデータの流出
4.3 セッション固定化攻撃
4.4 セッションハイジャック5章 インクルード
5.1 ソースコードの流出
5.2 バックドアURL
5.3 ファイル名の改ざん
5.4 コードインジェクション6章 ファイルとコマンド
6.1 トラバーサル攻撃
6.2 リモートファイルのリスク
6.3 コマンドインジェクション7章 認証と認可
7.1 総当たり攻撃
7.2 パスワード盗聴
7.3 リプレー攻撃
7.4 持続的ログイン8章 共有型ホスティング環境
8.1 ソースコードの流出
8.2 セッションデータの流出
8.3 セッションインジェクション
8.4 ファィルシステム閲覧
8.5 セーフモード付録A 構成ディレクティブ
A.1 allow_url_fopen
A.2 disable_functions
A.3 display_errors
A.4 enable_dl
A.5 error_reporting
A.6 file_uploads
A.7 log_errors
A.8 magic_quotes_gpc
A.9 memory_limit
A.10 open_basedir
A.11 register_globals
A.12 safe_mode付録B 関数
B.1 eval( )
B.2 exec( )
B.3 file( )
B.4 file_get_contents( )
B.5 fopen( )
B.6 include
B.7 passthru( )
B.8 phpinfo( )
B.9 popen( )
B.10 preg_replace( )
B.11 proc_open( )
B.12 readfile( )
B.13 require
B.14 shell_exec( )
B.15 system( )付録C 暗号
C.1 パスワードの格納
C.2 mcryptを使う
C.3 クレジットカード番号の格納
C.4 セッションデータの暗号化
C.4.1 pgcryptoによるセッションデー