2010年1月19日 星期二

cookie設定httponly 防止 XSS攻擊

在php.ini中(PHP5.2以上版本已支持HttpOnly參數的設置)

  session.cookie_httponly =TRUE
  -----------------------------------------------------
  設置其值為1或者TRUE,來開啟全局的Cookie的HttpOnly屬性
  -----------------------------------------------------

或者

<?php

  ini_set("session.cookie_httponly", 1);
  // or
  session_set_cookie_params(0, NULL, NULL, NULL, TRUE);
  ?>
  -----------------------------------------------------
  Cookie操作函數setcookie函數和setrawcookie函數也專門添加了第7個參數來做為HttpOnly的選項,開啟方法為:
  -------------------------------------------------------
  setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);
  setrawcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);
  -------------------------------------------------------
  對於PHP5.1以前版本以及PHP4版本的話,則需要通過header函數來變通下了:
  -------------------------------------------------------------
  <?php
  header("Set-Cookie: hidden=value; httpOnly");
  ?>