この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 15572|答える: 0

[ASP.NET] 一般的なウェブ開発言語におけるHttpOnly設定の詳細な説明

[リンクをコピー]
掲載地 2015/06/03 21:02:38 | | |

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




先の:Httponlyでウェブアプリケーションのセキュリティを向上させる
次に:SQL Server 2008 5120 の添付データベースエラーの解決策
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com