セキュアPHP
- 4. クロスサイトスクリプティング
対策
• htmlentities(str,ENT_QUOTES,
Content-Typeヘッダで定義した文字セット );
日本語対応
output_handler = mb_output_handler
mbstring.language = japanese
mbstring.encoding_translation = On
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = SJIS
- 5. CSRF対策
• トークンを利用して利用者がサブミットしたものだけ
を受け付ける。
session_start();
$token = md5(uniqid(rand(),TRUE));
//トークンを設定
$_SESSION*‘token’+ = $token;
//トークンの作成時間を設定(受信側で有効期間を設
定)
$_SESSION*‘token_time’] = time();
・・・
<form method=“post”>
<input type=“hidden” name=“token” value=“<?echo
$token; ?>”>
- 13. セキュリティに関する構成の
point
構成ディレクティブの確認を行う。
allow_url_fopen 無効にする。
disable_functionsに無効化する関数を登録
exec()、passthru()、phpinfo()、popen()、
proc_open()、shell_exec()、system()など。
display_errorsを無効にする。
enable_dlを無効にする。
error_reportingにE_ALLを設定する。
- 14. セキュリティに関する構成の
point
file_uploadsがファイルのアップロード機能
が
不要な場合は無効にする。
log_errorsを有効にし、定期的にチェックす
る。
magic_quotes_gpcを無効にする。【5.4で削
除】
memory_limitを8M程度に設定する。
open_basedirでPHPが開けるファイルを特定