HttpOnlyによるXSSのクッキー情報取得分析については、Kenshinの著作「Using httpOnly to better application security」を参照してください。
javaEEの設定:
APIには特定の操作メソッドや関数属性はなく、今後のバージョンで提供されるかはわかりませんが、以下は回避策です:
————————————————————————————–
response.setHeader("Set-Cookie", "cookiename=value; パス=/; Domain=neeao.com; 最大年齢=秒; HTTPOnly");
————————————————————————————–
ASP.NET の舞台設定 .net 2.0以降のバージョンでは、Web.configファイル内でグローバルhttponlyの設定をサポートしています。以下のように設定されています。web.configにノードを追加するだけです: ------------------------------------------------------------------ <httpCookies httpOnlyCookies="true" /> ------------------------------------------------------------------ .net 2.0以降のクッキーオブジェクトには、呼び出しのための直接的なHttpOnlyパラメータがあり、使用方法は以下の通りです。 C#コード: ------------------------------------------------------------------ HttpCookie myCookie = 新しいHttpCookie("myCookie"); myCookie.HttpOnly = true; Response.AppendCookie(myCookie); ------------------------------------------------------------------- vb.net コード ------------------------------------------------------------------- Dim myCookie As HttpCookie = 新しいHttpCookie("myCookie") myCookie.HttpOnly = 真 Response.AppendCookie(myCookie) ------------------------------------------------------------------- asp.net 1.1では、グローバルクッキーHttpOnlyを設定して、グローバルファイルGlobal.asaxのアプリケーションノードのApplication_EndRequestイベントを追加することも可能です: ------------------------------------------------------------------- 保護されたvoid Application_EndRequest(Object sender, EventArgs e)
{ 文字列 authCookie = FormsAuthentication.FormsCookieName; foreach(Response.Cookiesの文字列sCookie) { もし (sCookie.Equals(authCookie)) { Response.Cookies[sCookie]。 経路 += "; HttpOnly"; } } } ------------------------------------------------------------------- コードを書く場合は、次のように追加する必要があります: -------------------------------------------- Response.Cookies[cookie]。 経路 += "; HTTPOnly」; --------------------------------------------- PHPの設定 PHP5.2以降のバージョンはすでにHttpOnlyパラメータの設定をサポートしており、グローバルHttpOnlyの設定もphp.ini ----------------------------------------------------- session.cookie_httponly = ----------------------------------------------------- グローバルクッキーのHttpOnly属性を有効にするために値を1またはTRUEに設定し、もちろんコード内で有効にすることもできます: ----------------------------------------------------- <?php ini_set(「session.cookie_httponly」、1); または session_set_cookie_params(0, NULL, NULL, NULL, TRUE); ?> ----------------------------------------------------- クッキー操作関数setcookie関数とsetrawcookie関数もHttpOnlyのオプションとして7番目のパラメータを追加しており、開頭メソッドは以下の通りです: ------------------------------------------------------- setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); setrawcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); ------------------------------------------------------- 5.1およびPHP4以前のPHPバージョンでは、ヘッダー関数を使って変更を行う必要があります: ------------------------------------------------------------- <?php header("Set-Cookie: hidden=value; httpOnly"); ?> -------------------------------------------------------------
ASP aspの組み込みオブジェクトには関連するメソッドが提供されていないため、あくまで回避策として実装できます: -----------------------------------------------------<% ‘************************************************** 『ASPはHTTPonlyクッキーを出力します。IE6.0以上のブラウザサポート』 『WDFrog』 ‘2009-04-15 '<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> ‘**************************************************
「———-SetHttpOnlyCookie—————————————- 機能:httpOnly Cookiesを設定する パラメータ:expDateは保証の満了、0は設定されていない、過去のある時点で設定はクリアを意味します 'argument: domain is empty(文字列)。 空)は設定されていないことを意味します ‘——————————————————————- 関数セットHttpOnlyCookie(cookieName, cookieValue, domain, path, expDate) ディムクッキー cookie=cookieName & "=" & Server.URLEncode(cookieValue) & "; path=" & path expDate <> 0ならば クッキー=クッキー& "; expires=" & DateToGMT(expDate) もしも
もしドメイン<>「」ならば、 クッキー=クッキー& "; ドメイン=" & ドメイン もしも
クッキー=クッキー& "; HttpOnly」
Call Response.AddHeader(「Set-Cookie」、クッキー) 終端機能
「————-ゲットGMTタイム———— パラメータ:sDateはGMTに変換する必要がある時刻です ‘——————————— Function DateToGMT(sDate) Dim dWeek, dMonth ディムストレートゼロ、ストレートゾーン strZero="00" strZone="+0800" dWeek=Array(「Sun」「Mon」「Tue」「Wes」「Thu」「Fri」「Sat」) dMonth=Array("Jan""Feb"""Mar"""Apr"""May"""Jun"""Jul"""August"""Sep""Oct"Nov"""Dec") DateToGMT = dWeek(WeekDay(sDate)-1)&", "&Right(strZero&Day(sDate),2)&" "&dMonth(Month(sDate)-1)&" "&Year(sDate)&" "&Right(strZero&Hour(sDate),2)&":"&Right(strZero&Minute( sDate),2)&":"&Right(strZero&Second(sDate),2)&" "&strZone 終端機能 参考文献 'Call SetHttpOnlyCookie("cookieOnly1","onlyValue",".xxx.com","/",0)
%>
---------------------------------------------------- 参考文献: 1.http://www.owasp.org/index.php/HTTPOnly 2.http://blogs.msdn.com/dansellers/archive/2006/03/13/550947.aspx 3.http://ilia.ws/archives/121-httpOnly-cookie-flag-support-in-PHP-5.2.html 4.http://www.asp101.com/tips/index.asp?id=160 5.http://www.cnblogs.com/wdfrog/archive/2009/04/15/1436493.html |