Как файлы cookie JavaScript отправляются в браузер и как они проверяются? - PullRequest
2 голосов
/ 07 декабря 2011

Я знаю, что когда куки отправляются с сервера на браузер с настройкой языка сервера, это происходит через http или ssl или https. Итак, куда же направляется файл cookie javascript, когда в браузере выполняется сценарий «document.cookie =» и по какой схеме / схеме передачи?

Ответы [ 2 ]

5 голосов
/ 07 декабря 2011

Браузер просто отправляет все неиспользованные HTTP-куки (не связанные с SSL!) В «cookie jar», который соответствует домену (и, возможно, путь ) исходящего HTTP-запроса: один раз в "cookie jar", cookie отправляется автоматически для всех будущих запросов. Файлы cookie, отправленные с сервера через заголовок Set-Cookie, добавляются автоматическик «банке печенья», но, как отмечалось, куки также могут быть добавлены из JavaScript *.В обоих случаях клиент / браузер отправляет cookie обратно на сервер через заголовок Cookie.

Именно поэтому , как и все пользовательские вводы, к cookie-файлам следует относиться с осторожностью, а должен быть подтвержден / подтвержден при каждом запросе операций, "чувствительных к безопасности".Обычно используется сессионный cookie , который обеспечивает эту защиту, будучи формой nonce , поскольку они являются (или должны быть) большими криптографически случайными числами, которыеникогда не используются повторно и не могут быть предсказаны.

Сеансовый cookie / nonce - это просто просмотр постоянного хранилища (обычно базы данных), содержащего состояние, такое как «идентификатор пользователя».Это сочетание характеристик разделения и одноразового номера, которые не позволяют клиентам выбирать свой собственный «идентификатор пользователя», основываясь только на значении файла cookie, но ...

... "безопасность" - сложная темаи сеансовые куки не не защищают от любого вредоносного JavaScript, такого как тот, который использует CSRF или аналогичный, и они не предлагают никакой помощи против атак "человек посередине" или подслушивания,и эффективны только против повторных атак, поскольку их время истечения.Другой (часто упускаемый из виду) подход к проверке cookie-файлов заключается в использовании защищенного от несанкционированного доступа хеш-проверки, например, того, что ASP.NET делает с состоянием просмотра.

Серверная программа, которая слепо использует / доверяет LoggedInUserId или IsAdministrator куки были бы действительно очень небезопасными!:)

Счастливое кодирование.


* Все самые последние браузеры поддерживают HTTPOnly куки, которые не могут быть прочитаны / перезаписаныJavaScript: они все еще могут быть подделаны другими программами, однако!(Некоторые браузеры в последнее время получили поддержку только: Chrome 12, iOS4, Safari 5.)

2 голосов
/ 07 декабря 2011

Файлы cookie, установленные с помощью Javascript, передавать не нужно: они устанавливаются с помощью кода, выполняемого в браузере, и они также сохраняются браузером (как и все файлы cookie).Вы можете думать об этом как о браузере, записывающем напоминание самому себе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...