HttpOnlyn analyysin XSS:stä evästetietojen saamiseksi löytyy Kenshinin kirjoituksesta: httpOnlyn käyttö sovellusturvallisuuden parantamiseksi.
JavaEE:n asetukset:
API:ssa ei ole mitään erityistä toimintatapaa tai funktioattribuuttia, enkä tiedä, tarjotaanko niitä tulevissa versioissa, seuraava on kiertotie:
————————————————————————————–
response.setHeader("Set-Cookie", "cookiename=value; Polku=/; Domain=neeao.com; Maksimi-ikä=sekunteja; HTTPOnly");
————————————————————————————–
Ympäristöt ASP.NET .net 2.0 ja uudemmat versiot tukevat globaalin httponly-konfigurointia Web.config-tiedostossa, joka on asetettu seuraavasti, lisää vain solmu web.config-tiedostoon: ------------------------------------------------------------------ <httpCookies httpOnlyCookies="true" /> ------------------------------------------------------------------ .net 2.0 tai uudemmassa evästeobjektissa on suora HttpOnly -parametri kutsua varten, ja käyttötapa on seuraava: C#-koodi: ------------------------------------------------------------------ HttpCookie myCookie = uusi HttpCookie ("myCookie"); myCookie.HttpOnly = totta; Response.AppendCookie(myCookie); ------------------------------------------------------------------- vb.net koodi ------------------------------------------------------------------- Himmennä myCookie Esimerkiksi HttpCookie = uusi HttpCookie ("myCookie") myCookie.HttpOnly = Totta Vastaus.AppendCookie(myCookie) ------------------------------------------------------------------- asp.net versiossa 1.1 voit myös asettaa globaalit evästeet HttpOnly lisäämään Application_EndRequest tapauksessa, jossa globaalin tiedoston Global.asaxin sovellussolmu esiintyy: ------------------------------------------------------------------- protected void Application_EndRequest(Object sender, EventArgs e)
{ string authCookie = FormsAuthentication.FormsCookieName; foreach (merkkijono sCookie Response.Cookies-tiedostossa) { if (sCookie.Equals(authCookie)) { Vastaus.Evästeet[sCookie]. Polku += "; HttpOnly"; } } } ------------------------------------------------------------------- Jos kirjoitat sen koodiin, sinun täytyy lisätä se näin: -------------------------------------------- Vastaus. Evästeet[eväste]. Polku += "; HTTPOnly"; --------------------------------------------- asetukset PHP:ssä PHP5.2 ja uudemmat versiot tukevat jo HttpOnly-parametrien asettamista, ja myös globaalin HttpOnly-asetuksen php.ini ----------------------------------------------------- session.cookie_httponly = ----------------------------------------------------- Aseta sen arvoksi 1 tai TRUE, jotta globaalin evästeen HttpOnly -attribuutti voidaan ottaa käyttöön, ja tietysti voit ottaa sen myös käyttöön koodissa: ----------------------------------------------------- <?php ini_set("session.cookie_httponly", 1); tai session_set_cookie_params(NOLLA, NOLLA, NOLLA, TOSI); ?> ----------------------------------------------------- Evästetoiminto setcookie-funktio ja setrawcookie-funktio lisäävät myös seitsemännen parametrin vaihtoehtona HttpOnlylle, ja avausmenetelmä on: ------------------------------------------------------- setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); setrawcookie("abc", "testi", NULL, NULL, NULL, NULL, TRUE); ------------------------------------------------------- PHP-versioissa ennen 5.1- ja PHP4-versioita sinun täytyy käyttää otsikkofunktiota muutosten tekemiseen: ------------------------------------------------------------- <?php header("Set-Cookie: hidden=value; httpOnly"); ?> -------------------------------------------------------------
ASP ASP:n sisäänrakennetuissa objekteissa ei ole olennaisia menetelmiä, joten voit toteuttaa sen vain kiertotienä: -----------------------------------------------------<% ‘************************************************** 'ASP output httponly cookie IE6.0 tai uudempi selaintuki 'WDFrog ‘2009-04-15 '<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> ‘**************************************************
'———-AsetaHttpOnlyCookie—————————————- 'Funktio: Aseta HttpOnly -evästeet 'Parametrit: expDate tarkoittaa takuun päättymistä, 0 tarkoittaa, ettei ole asetettu, ja asetettu tiettyyn aikaan menneisyydessä tarkoittaa clearing 'argumentti: alue on tyhjä (merkkijono. Tyhjä) tarkoittaa, ettei ole asetettu ‘——————————————————————- FunktiosetHttpOnlyCookie(cookieName,cookieValue,domain,path,expDate) Dim cookie cookie=cookieName & "=" & Server.URLEncode(cookieValue) & "; path=" & polku Jos expDate <> 0, niin cookie=cookie & "; expires=" & DateToGMT(expDate) Lopeta jos
Jos domain <> "" niin cookie=cookie & "; domain=" & domain Lopeta jos
cookie=cookie & "; Vain HttpOnly"
Call Response.AddHeader ("Set-Cookie", eväste) Loppufunktio
'————-get GMTTime———— 'Parametrit: sDate on aika, joka täytyy muuntaa GMT:ksi ‘——————————— Function DateToGMT(sDate) Himmeä dViikko, dKuukausi Dim strZero, strZone strZero="00" strZone="+0800" dViikko=Array("Sunnuntai","Ma","Tiistai","Wes","To","Perjanta","La) dKuukausi=Array("Tammi", "Helmikuu", "Maaliskuu", "Touko", "Kesäkuu", "Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marras", "Joulu") DateToGMT = dViikko(Viikkopäivä(sPäivä)-1)&", "&Right(strZero&Day(sDate),2)&" "&dKuukausi(Kuukausi(sDate)-1)&" "&Vuosi(sDate)&" "&Right(strZero&Hour(sDate),2)&":"&Right(strZero&Minute( sDate),2)&":"&Right(strZero&Second(sDate),2)&" "&strZone Loppufunktio ' viittaus 'Kutsu SetHttpOnlyCookie("cookieOnly1","onlyValue",".xxx.com","/",0)
%>
---------------------------------------------------- Lähteet: 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 |