Как известно, браузер решает, какие куки слать странице вместе с запросом, на основании того, какие домен и путь прописаны у куки. Причём домены тупо сравниваются своими концами. То есть, кука, оставленная для домена ilyabirman.ru, видна всем доменам *.ilyabirman.ru.
Страшный баг Оперы состоит в том, что если домены ilyabirman.ru и something.ilyabirman.ru создадут куки под именем name, то им обоим будет слаться та кука, которая оставлена для домена ilyabirman.ru. Таким образом, если something.ilyabirman.ru по неосторожности оставил куку с таким же именем, с каким уже успел оставить куку ilyabirman.ru, то он никак не сможет достать её значение.
Другие браузеры понимают, что более «родные» куки должны иметь приоритет...
Из-за этой проблемы мне не удавалось залогиниться в e2, который я поставил в своём поддомене, ведь ему прилетала кука не с тем ключиком, который только что был сгенерен, а с тем, который валиден только для ilyabirman.ru.
Секс с этим багом продолжался несколько часов: записываю в куку значение, а прилетает совсем другое, что за чертовщина!? Всё это ещё и осложнялось тем, что изучаемые куки представляли собой случайные 40-значные шестнадцатиричные последовательности, поэтому чисто визуально понять, что прилетевшая кука относилась к ilyabirman.ru не представлялось возможным. Но, наконец, я вычислил в чём было дело.
Начиная с v1104, e2 приписывает ко всем создаваемым кукам префиксы, состоящие из такого числа знаков подчёркивания, насколько глубоко относительно второго уровня зарыт домен, где он установлен. То есть, сайт something.ilyabirman.ru получает куки, например _key, _commenter_email и так далее.
Это уже второй баг Оперы, который мне пришлось сегодня исправлять самому в e2. Но про первый я даже рассказывать не хочу, там такииииие дебри DOM...