Встановіть для файлу cookie значення HttpOnly за допомогою Javascript


87

У мене є файл cookie, який НЕ HttpOnlyможе. Чи можу я встановити цей файл cookie за HttpOnlyдопомогою JavaScript?


1
Як можна встановити файл cookie за допомогою JavaScript, яким сам JavaScript не повинен маніпулювати? Просто встановіть його на стороні сервера.
BalusC

1
Файл cookie НЕ HttpOnly, і я хочу встановити для нього HttpOnly через Javascript.

5
Думаю, вам не вистачає суті HttpOnly.
BalusC

Чудове запитання. Насправді немає жодних мінусів у встановленні файлу cookie HttpOnly від клієнта, що стосується безпеки. Тож можна подумати, що це дозволено. Але, звичайно, це не так.
PHP Guru

Відповіді:


171

An HttpOnlyпечиво означає , що він НЕ доступний для мов сценаріїв , таких як JavaScript. Отже, в JavaScript немає абсолютно жодного доступного API для отримання / встановлення HttpOnlyатрибута файлу cookie, оскільки в іншому випадку це переграє значення HttpOnly.

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


4
Мені цікаво, як програма на стороні клієнта, така як розширення браузера "EditThisCookie", може змінити прапорець HttpOnly на false.
pavanw3b

1
@ PavanW3b: Він не використовує для цього мову сценаріїв на стороні клієнта, як JavaScript. Це просто розширення браузера.
BalusC

10
Розширення браузера @BalusC написані у форматі JS і деякий час розробник.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", доки файл cookie все ще не читається зі сценарію ...
привіт

4
MDN каже, що це заборонено. developer.mozilla.org/en-US/docs/Web/HTTP/…
mpoisot
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.