Comments 40
Я думаю вы с нетерпением ждете этот вопрос:
Каково по вашему правильное решение данной проблемы?
(* RFC 6265 / Пункты 5.1.3, 4.1.2.3 и др*)
Каково по вашему правильное решение данной проблемы?
(* RFC 6265 / Пункты 5.1.3, 4.1.2.3 и др*)
+19
Обязательное использование $domain аргумента функции setcooke() php.net/manual/ru/function.setcookie.php
+1
И какое значение должно быть у этого параметра? Посмотрите пожалуйста на серый текст в моем предыдущем комментарии.
+5
должен быть текущий домен. да, RFC. но браузеры, они такие браузеры… В RFC прямо описание этой ошибки, вы правы: «WARNING: Some existing user agents treat an absent Domain
attribute as if the Domain attribute were present and contained
the current host name. For example, if example.com returns a Set-
Cookie header without a Domain attribute, these user agents will
erroneously send the cookie to www.example.com as well»
attribute as if the Domain attribute were present and contained
the current host name. For example, if example.com returns a Set-
Cookie header without a Domain attribute, these user agents will
erroneously send the cookie to www.example.com as well»
-1
В приведенном вами «warning» говорится о поведениях браузера при отсутствии данного параметра (как раз те самые различия между хромом и ie).
Мы же с вами обсуждаем уже присутствие параметра Domen и то каким он должен быть, чтобы поддомены не получали куки.
Мы же с вами обсуждаем уже присутствие параметра Domen и то каким он должен быть, чтобы поддомены не получали куки.
0
Да, в этом WARNING по-сути все то, что в этом топике сжато написано.
Если вопрос в том, что указывать в домене — то ответ простой:
«domain.com», без ведущей точки впереди.
Если вопрос в том, что указывать в домене — то ответ простой:
«domain.com», без ведущей точки впереди.
0
Проверьте пожалуйста это, например в Chrome.
+2
Хорошо. Если не хотите пробовать, то вот вам пример из указанного RFC:
The server can alter the default scope of the cookie using the Path
and Domain attributes. For example, the server can instruct the user
agent to return the cookie to every path and every subdomain of
example.com.
Set-Cookie: SID=31d4d96e407aad42; Path=/; Domain=example.com
+6
В скриншоте wireshark'e foo.bar.com,
а в тексте статьи про хром foo.com
а в скриншоте хрома bar.com
а в скриншоте ie bar.foo.com
Это я неправильно понял смысл статьи, или автор запутался в foo и bar?
а в тексте статьи про хром foo.com
а в скриншоте хрома bar.com
а в скриншоте ie bar.foo.com
Это я неправильно понял смысл статьи, или автор запутался в foo и bar?
+11
cookie-неделя на хабре
+3
причем если поставить куку с адреса www.site.com, то она будет в реквест заголовках на адресе site.com, но надежно стереть ее получится только опять же с www.site.com Надежно, это значит не теоретически, а практически для всех браузеров
+2
Статью можно сжать до одного предложения: «при установке cookie без указания домена, IE, в отличие от других браузеров, проставляет cookie для всех поддоменов».
+18
UFO just landed and posted this here
Не совсем понял. Это в каких случаях опасно? Правильно ли я понимаю, что в случае когда все поддомены мои, это не так критично?
+1
Это опасно, так как дает возможность атаковать основной домен с поддоменов. Это не опасно, когда на поддоменах нет уязвимостей.
0
Согласно RFC 2011 года поддомены всегда получают куки указанного домена. (Если только сам браузер не пойдет против RFC).
Поэтому указанная в топике «опасность» будет даже если указывать домен.
Правильней было бы написать, что не указывая домен мы отдаем определение охватываемых доменов на усмотрение браузера.
Наличие же заданного домена никак не влияет на поддомены. (В старом RFC и браузерах влияло). Но автор меня игнорирует =)
Поэтому указанная в топике «опасность» будет даже если указывать домен.
Правильней было бы написать, что не указывая домен мы отдаем определение охватываемых доменов на усмотрение браузера.
Наличие же заданного домена никак не влияет на поддомены. (В старом RFC и браузерах влияло). Но автор меня игнорирует =)
+4
Не игнорирую — проверяю. Хром у меня точно ничего не ставит на поддомены.
+1
Все проверил — никто не ставит на поддомены. Вы на чем проверяли?
0
Chromium 18.0.1025.151, Firefox 12.0
0
Действительно, это так. Спасибо! При указании даже прямого домена, браузер все-равно проставяет на все поддомены. Новый RFC работает именно так. Надо думать…
+1
Стоит тогда наверное упомянуть и про куки сессии, по умолчанию при открытии сессии поставятся куки без всяких параметров.
Нужно использовать session_set_cookie_params
Нужно использовать session_set_cookie_params
0
Если честно — вообще не понял смысла поста. Рассказывается о том, что и так понятно.
Даже если программер укажет создание куки для отдельного домена — ничего не мешает мне создать куки для другого домена.
Единственная защита — это фильтрация куков, а не думать, что куки можно получить только от сервера и их нельзя изменить или создать свои.
Даже если программер укажет создание куки для отдельного домена — ничего не мешает мне создать куки для другого домена.
Единственная защита — это фильтрация куков, а не думать, что куки можно получить только от сервера и их нельзя изменить или создать свои.
+1
Единственная защита — это фильтрация куков
What? o_O
-1
Проверять входящие данные от клиента, а не как написал автор получать XSS.
0
Топик о том, что если ваш сайт ставит куку без указания домена, то зайдя на соседний домен (не ваш) и отыскав XSS можно увести у пользователя куку (и значит учетку) вашего «секьюрного» сайта.
+1
Не совсем
> Проверим Internet Explorer. Так как красивых плагинов для просмотра COOKIE
> для него я не знаю, проставим куки для домена foo.com
> и выведем document.cookie с домена bar.foo.com
Если foo.com ваш, то и под-домен bar.foo.com, видимо, тоже ваш.
Другое дело, если б вы куки выставляли с abc.foo.com, а получали на xyz.foo.com — но такого не происходит.
> Проверим Internet Explorer. Так как красивых плагинов для просмотра COOKIE
> для него я не знаю, проставим куки для домена foo.com
> и выведем document.cookie с домена bar.foo.com
Если foo.com ваш, то и под-домен bar.foo.com, видимо, тоже ваш.
Другое дело, если б вы куки выставляли с abc.foo.com, а получали на xyz.foo.com — но такого не происходит.
0
Что означает слово SOP в тегах?
Это слово не встречается в тексте и по этому тегу нет других статей.
Это слово не встречается в тексте и по этому тегу нет других статей.
0
Same Origin Policy en.wikipedia.org/wiki/Same_origin_policy
0
0
Так а какая версия IE?
0
Про 8-й IE есть целая статья с quirks в работе с куками:
blogs.msdn.com/b/ieinternals/archive/2009/08/20/wininet-ie-cookie-internals-faq.aspx
blogs.msdn.com/b/ieinternals/archive/2009/08/20/wininet-ie-cookie-internals-faq.aspx
0
Sign up to leave a comment.
Типичная ошибка при установке COOKIE в PHP