Установите cookie в HttpOnly через Javascript

87

У меня есть файл cookie, который НЕ HttpOnlyМОГУ Я установить этот файл cookie HttpOnlyчерез JavaScript?

Эрик Хотингер
источник
1
Как можно было бы установить cookie с помощью JavaScript, которым сам JavaScript не должен управлять? Просто установите его на стороне сервера.
BalusC 04
1
Cookie НЕ HttpOnly, и я хочу установить для него HttpOnly через Javascript.
5
Я думаю, вы упускаете суть HttpOnly.
BalusC 04
Отличный вопрос. На самом деле нет никаких недостатков в установке файла cookie HttpOnly от клиента с точки зрения безопасности. Можно подумать, что это разрешено. Но, конечно, это не так.
PHP Guru

Ответы:

171

An HttpOnlyпеченье означает , что он не доступен для языков сценариев , таких как JavaScript. Таким образом, в JavaScript нет абсолютно никакого API, доступного для получения / установки HttpOnlyатрибута cookie, поскольку в противном случае это нарушило бы смысл HttpOnly.

Просто установите его как таковой на стороне сервера, используя любой язык на стороне сервера, который использует сторона сервера. Если для этого абсолютно необходим JavaScript, вы можете просто позволить ему отправить некоторый (ajax) запрос, например, с некоторым конкретным параметром запроса, который запускает язык на стороне сервера для создания файла cookie HttpOnly. Но это все равно упростило бы для хакеров изменение HttpOnlyтолько с помощью XSS и по-прежнему иметь доступ к cookie через JS и, таким образом, сделать HttpOnlyваш cookie полностью бесполезным.

BalusC
источник
4
Мне интересно, как приложение на стороне клиента, такое как расширение браузера EditThisCookie, могло изменить флаг HttpOnly на false.
pavanw3b 05
1
@ PavanW3b: Он не использует для этого язык сценариев на стороне клиента, такой как JavaScript. Это просто расширение для браузера.
BalusC
10
@BalusC Расширения браузера написаны на JS и в течение некоторого времени назывались developer.chrome.com/extensions: «Вы пишете их с использованием веб-технологий, таких как HTML, JavaScript и CSS». developer.mozilla.org/en-US/Add-ons/WebExtensions/… «Они написаны с использованием стандартных веб-технологий - JavaScript, HTML и CSS - плюс некоторые специальные API JavaScript». И пример приложения с открытым исходным кодом, написанного в 2013 году. github.com/Asana/Chrome-Extension-Example
Джастин Хамаде,
53
Я не очень понимаю , как быть в состоянии установить HttpOnly от JS будет «победить смысл HttpOnly», до тех пор пока печенье еще нечитаемым из сценария ...
алло
4
MDN говорит, что это запрещено. developer.mozilla.org/en-US/docs/Web/HTTP/…
mpoisot