iwason diary

健康、プログラミング、日常系などなど

php5.2未満における httpOnly属性設定

Adobe Developer Connection

Securing your applications using HttpOnly cookies with ColdFusion

 javascriptによるsession idの盗聴を防ぐために、HttpOnly属性を設定すべきだということです。

 

PHP5.2以降であれば以下の設定のいずれかにて実現できます。

コード内の場合

ini_set('session.cookie_httponly', 1); 

php.iniで設定

session.cookie_httponly

cookie発行時に設定(第7引数)

setcookie( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )

 

PHP 5.1.x 以前の PHPの場合、上記の方法は使用できませんが、

header() 関数を使用すれば Cookie に HttpOnly 属性を付加することが可能です。

 

header("Set-Cookie: PHPSESSID=".session_id()."; httpOnly; path=/");

 

以前はFireFoxで対応していない等があったが、 

RFC6265 で定義されたため、現在は

Internet Explorer 6 SP1以降
Firefox 2.0.0.5以降
Google Chrome 1.0以降
Safari 4.0以降

では対応済みだそうです。

 

参考サイト

http://www.studyinghttp.net/cookies#Set-Cookie

http://d.hatena.ne.jp/t_komura/20060812/1155349717

http://d.hatena.ne.jp/ryster/20080229/1204304780