http onlyおよび設定


1.HttpOnlyとは?
 
クッキーにHttpOnlyプロパティを設定すると、jsスクリプトでクッキー情報を読み取ることができず、XSS攻撃を効果的に防止できます.
2.javaEEのAPIはサポートされていますか?
 
現在、sun社は関連APIを公表していないが、PHP、C#はいずれも実現している.JavaEEの兄弟达をやって比较的に気がふさいで、焦らないでください
 
3.HttpOnlyの設定例
 
javaEE
Javaeeコード
  • response.setHeader("Set-Cookie", "cookiename=value;   
  • Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly");  
  • response.setHeader("Set-Cookie", "cookiename=value;
    Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly");
     
    具体的なパラメータの意味は再度述べないで、設定が終わった後にjsスクリプトを通じて(通って)このクッキーを読むことができないので、しかし以下の方式を使って(通って)読み取ることができます
     
    Javaコード
  • Cookie cookies[]=request.getCookies();  
  • Cookie cookies[]=request.getCookies();
     
    C#
    C#コード
  • HttpCookie myCookie = new HttpCookie("myCookie");   
  • myCookie.HttpOnly = true;   
  • Response.AppendCookie(myCookie);  
  • HttpCookie myCookie = new HttpCookie("myCookie");
    myCookie.HttpOnly = true;
    Response.AppendCookie(myCookie);

    VB.NET
    Vb.netコード
  • Dim myCookie As HttpCookie = new HttpCookie("myCookie")   
  • myCookie.HttpOnly = True   
  • Response.AppendCookie(myCookie)  
  • Dim myCookie As HttpCookie = new HttpCookie("myCookie")
    myCookie.HttpOnly = True
    Response.AppendCookie(myCookie)
    

       ただし.NET 1.1では、手動で追加する必要があります.
    Response.Cookies[cookie].Path += ";HTTPOnly";
    

    PHP4
    Javaコード
  • header("Set-Cookie: hidden=value; httpOnly");  
  • header("Set-Cookie: hidden=value; httpOnly");

    PHP5
    Javaコード
  • setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);   
  • setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); 

        最後のパラメータはHttpOnlyプロパティです
     
     
    リファレンス
    Javaコード
  • http://www.owasp.org/index.php/HTTPOnly   
  •