PHP セッションのセキュリティ
stackoverflow で PHP セッションのセキュリティに関するディスカッションを見て、ここに記録しました。 (http://stackoverflow.com/questions/328/php-session-security)
1. SSL を使用します
2. session_id をリセットします
Quote
PHP では次のことができます: session_regenerate_id(true);
3. セッションの有効期間を設定します
を参照できます。 Brother Bird の記事: http://www.laruence.com/2012/01/10/2469.html
4. グローバル変数ではありません
5.サーバー上の情報を保存するため、重要な情報を Cookie に送信しないでください
6. ユーザー user_agent と IP を確認します
参照
PHP 使用: if ( $_SESSION[' user_agent'] != $_SERVER['HTTP_USER_AGENT']
|| $_SESSION['user_ip'] != $_SERVER['REMOTE_ADDR']) {
//ここで何か怪しいことが起こっていますか?
}
7. セッション攻撃を避けるために httpOnly を設定します
参照: http://ilia.ws/ archives/121-httpOnly -cookie-flag-support-in-PHP-5.2.html
8. ファイル システム上のセッションへのアクセスをロックダウンするか、カスタム セッション処理を使用します
Quote
セッション session_set_save_handler() をカスタマイズできます。
セッションを DB、memcached などに保存します。
9. 機密性の高い操作については、ログイン ユーザーに提供を要求することを検討してください。認証の詳細を再度確認します