Apakah ada cara untuk membaca cookie aman dengan JavaScript?
Saya mencoba melakukannya dengan menggunakan document.cookie
dan sejauh yang saya bisa lihat di artikel ini tentang cookie aman dan bendera HttpOnly , saya tidak dapat mengakses cookie aman dengan cara ini.
Adakah yang bisa menyarankan solusi?
javascript
security
cookies
tzam
sumber
sumber
Jawaban:
Browser yang berbeda memungkinkan tindakan keamanan yang berbeda ketika flag HTTPOnly disetel. Misalnya Opera dan Safari tidak mencegah javascript untuk menulis ke cookie. Namun, membaca selalu dilarang di versi terbaru dari semua browser utama.
Tetapi yang lebih penting mengapa Anda ingin membaca
HTTPOnly
cookie? Jika Anda seorang pengembang, nonaktifkan saja benderanya dan pastikan Anda menguji kode Anda untuk xss. Saya menyarankan Anda menghindari menonaktifkan bendera ini jika memungkinkan. TheHTTPOnly
bendera dan "bendera aman" (yang memaksa cookie yang akan dikirim melalui https) harus selalu set.Jika Anda seorang penyerang , maka Anda ingin membajak sesi . Tapi ada cara mudah untuk membajak sesi meskipun ada
HTTPOnly
bendera. Anda masih bisa mengendarai sesi tanpa mengetahui id sesi. Worm MySpace Samy melakukan hal itu. Ini menggunakan XHR untuk membaca token CSRF dan kemudian melakukan tugas resmi. Oleh karena itu, penyerang dapat melakukan hampir semua hal yang dapat dilakukan oleh pengguna yang login.Orang terlalu percaya pada
HTTPOnly
bendera, XSS masih bisa dieksploitasi. Anda harus menyiapkan penghalang di sekitar fitur sensitif. Seperti perubahan kata sandi yang diajukan harus membutuhkan kata sandi saat ini. Kemampuan admin untuk membuat akun baru harus membutuhkan captcha, yang merupakan teknik pencegahan CSRF yang tidak dapat dengan mudah dilewati dengan XHR .sumber
Inti dari cookie HttpOnly adalah bahwa cookie tidak dapat diakses oleh JavaScript.
Satu-satunya cara (kecuali untuk mengeksploitasi bug browser) agar skrip Anda membacanya adalah dengan memiliki skrip yang bekerja sama di server yang akan membaca nilai cookie dan menggemakannya kembali sebagai bagian dari konten respons. Tetapi jika Anda bisa dan akan melakukannya, mengapa menggunakan cookie HttpOnly?
sumber
Salah satu caranya adalah dengan menggunakan safari web inspector, dan di tab penyimpanan Anda dapat melihat semua cookie, httpOnly atau tidak, dan cukup pilih cookie Command + C, untuk menyalinnya.
Setelah Anda memiliki string, Anda dapat dengan mudah menguraikannya kembali dengan parser cookie atau javascript biasa.
sumber