За анализа на XSS от HttpOnly за получаване на информация за бисквитки, моля вижте текста на Kenshin: Използване на httpOnly за подобряване на сигурността на приложенията.
Настройки в javaEE:
В API-то не е предоставен конкретен метод на работа или атрибут на функцията и не знам дали ще бъде предоставен в бъдещи версии, следващото е заобиколно решение:
————————————————————————————–
response.setHeader("Set-Cookie", "cookiename=стойност; Път=/; Domain=neeao.com; Максимална възраст = секунди; HTTPOnly");
————————————————————————————–
Настройки в ASP.NET Версиите .net 2.0 и по-горе поддържат конфигуриране на глобалния httponly във файла Web.config, който е зададен по следния начин, просто добавете възел към web.config: ------------------------------------------------------------------ <httpCookies httpOnlyCookies="true" /> ------------------------------------------------------------------ В .net 2.0 или по-новия обект за бисквитки има директен параметър HttpOnly за извикване, а методът на използване е следният: C# код: ------------------------------------------------------------------ HttpCookie myCookie = нов HttpCookie("myCookie"); myCookie.HttpOnly = true; Response.AppendCookie(myCookie); ------------------------------------------------------------------- vb.net код ------------------------------------------------------------------- Dim myCookie като HttpCookie = нов HttpCookie("myCookie") myCookie.HttpOnly = Вярно Response.AppendCookie(myCookie) ------------------------------------------------------------------- В asp.net 1.1 можете също да зададете глобалните бисквитки HttpOnly да добавят в Application_EndRequest събитие на приложния възел на глобалния файл Global.asax: ------------------------------------------------------------------- защитен void Application_EndRequest(Object sender, EventArgs e)
{ string authCookie = FormsAuthentication.FormsCookieName; foreach (низ sCookie в Response.Cookies) { ако (sCookie.Equals(authCookie)) { Отговор. Бисквитки[sCookie]. Път += "; HttpOnly"; } } } ------------------------------------------------------------------- Ако го напишеш в кода, трябва да го добавиш по следния начин: -------------------------------------------- Отговор. Бисквитки[бисквитка]. Път += "; HTTPOnly"; --------------------------------------------- настройки в PHP Версиите PHP5.2 и по-високи вече поддържат настройката на параметрите HttpOnly, както и настройката на глобалния HttpOnly в php.ini ----------------------------------------------------- session.cookie_httponly = ----------------------------------------------------- Задайте стойността му на 1 или TRUE, за да активирате атрибута HttpOnly на глобалната бисквитка, и разбира се, можете да го активирате и в кода: ----------------------------------------------------- <?php ini_set("session.cookie_httponly", 1); или session_set_cookie_params(0, NULL, NULL, NULL, TRUE); ?> ----------------------------------------------------- Функцията за операция с бисквитки setcookie и setrawcookie също добавят 7-ия параметър като опция за HttpOnly, а методът за отваряне е: ------------------------------------------------------- setcookie ("abc", "test", NULL, NULL, NULL, NULL, TRUE); setrawcookie ("азбука", "тест", NULL, NULL, NULL, NULL, TRUE); ------------------------------------------------------- За PHP версии преди версиите 5.1 и PHP4 трябва да използвате функцията за заглавие, за да направите промени: ------------------------------------------------------------- <?php header("Set-Cookie: hidden=стойност; httpOnly"); ?> -------------------------------------------------------------
ASP В вградените обекти на asp не са предоставени релевантни методи, така че можете да ги реализирате само като заобиколно решение: -----------------------------------------------------<% ‘************************************************** 'ASP изход за httponly бисквитки IE6.0 или по-нова поддръжка на браузър 'WDFrog ‘2009-04-15 '<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> ‘**************************************************
'———-SetHttpOnlyCookie—————————————- 'Функция: Задайте HttpOnly бисквитки 'Параметри: expDate е изтичането на гаранцията, 0 означава не е зададено, а зададено на определено време в миналото означава изчистване 'аргумент: домейнът е празен (низ. Празно) означава не е зададена ‘——————————————————————- Function SetHttpOnlyCookie (cookieName,cookieValue,domain,path,expDate) Дим бисквитка cookie=cookieName & "=" & Server.URLEncode(cookieValue) & "; път=" & път Ако expDate <> 0, тогава cookie=бисквитка & "; expires=" & DateToGMT(expDate) Край ако
Ако домейн <> "" тогава cookie=бисквитка & "; domain=" & домейн Край ако
cookie=бисквитка & "; HttpOnly"
Call Response.AddHeader ("Set-Cookie", бисквитка) Крайна функция
'————-get GMTTime———— 'Параметри: sDate е времето, което трябва да се конвертира в GMT ‘——————————— Функция DateToGMT(sDate) Тъмна седмица, месец Dim strZero, strZone strZero="00" strZone="+0800" dWeek=Array("Неделя","Понеделник","Вторник","Уес","Четвъртък","Петък","Събота") dMonth=Array("януари","февруари","март","април","май","юни","юли","авг","септември",октомвриозни","ноември","декември") 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 |