Setel cookie ke HttpOnly melalui Javascript

90

Saya memiliki cookie yang TIDAK HttpOnlyBolehkah saya menyetel cookie ini HttpOnlymelalui JavaScript?

Eric Hotinger
sumber
1
Bagaimana mungkin menyetel cookie dengan JavaScript yang seharusnya tidak dapat dimanipulasi oleh JavaScript sendiri? Atur saja di sisi server.
BalusC
1
Cookie BUKAN HttpOnly dan saya ingin menyetelnya ke HttpOnly melalui Javascript.
6
Saya pikir Anda melewatkan inti dari HttpOnly.
BalusC
Pertanyaan bagus. Sebenarnya tidak ada kerugian untuk mengatur cookie HttpOnly dari klien sejauh keamanan berjalan. Jadi Anda akan berpikir bahwa itu akan diizinkan. Tapi tentu saja tidak.
PHP Guru

Jawaban:

178

Sebuah HttpOnlycara cookie yang itu tidak tersedia untuk bahasa scripting seperti JavaScript. Jadi dalam JavaScript, sama sekali tidak ada API yang tersedia untuk mendapatkan / menyetel HttpOnlyatribut cookie, karena hal itu akan mengalahkan arti dari HttpOnly.

Atur saja seperti itu di sisi server menggunakan bahasa sisi server apa pun yang digunakan sisi server. Jika JavaScript benar-benar diperlukan untuk ini, Anda dapat mempertimbangkan untuk membiarkannya mengirim beberapa permintaan (ajax) dengan misalnya beberapa parameter permintaan khusus yang memicu bahasa sisi server untuk membuat cookie HttpOnly. Tapi, itu masih akan memudahkan peretas untuk mengubah HttpOnlyhanya dengan XSS dan masih memiliki akses ke cookie melalui JS dan dengan demikian membuat HttpOnlycookie Anda benar-benar tidak berguna.

BalusC
sumber
4
Saya bertanya-tanya bagaimana aplikasi sisi klien seperti ekstensi browser "EditThisCookie" mengubah bendera HttpOnly menjadi false.
pavanw3b
1
@ PavanW3b: Itu tidak menggunakan bahasa skrip sisi klien seperti JavaScript untuk itu. Ini hanya ekstensi browser.
BalusC
10
Ekstensi Peramban @BalusC ditulis dalam JS dan telah beberapa waktu developer.chrome.com/extensions "Anda menulisnya menggunakan teknologi web seperti HTML, JavaScript, dan CSS." developer.mozilla.org/en-US/Add-ons/WebExtensions/… "Mereka ditulis menggunakan teknologi Web standar - JavaScript, HTML, dan CSS - ditambah beberapa JavaScript API khusus." Dan contoh open source yang ditulis pada 2013 github.com/Asana/Chrome-Extension-Example
Justin Hamade
56
Saya tidak benar-benar mengerti bagaimana mengatur HttpOnly dari JS akan "mengalahkan arti HttpOnly", selama cookie masih tidak dapat dibaca dari skrip ...
hallo
4
MDN mengatakan itu dilarang. developer.mozilla.org/en-US/docs/Web/HTTP/…
mpoisot