Cookie phpsessid dibuat tanpa bendera aman

Cookie HTTP adalah sepotong kecil informasi yang dikirimkan server ke browser web pengguna. Header Cookie menyimpan cookie HTTP yang sebelumnya dikirim oleh server web dengan header Set-Cookie

Cookie sesi dihapus saat browser dimatikan dan jika cookie bersifat permanen, cookie akan kedaluwarsa pada waktu yang ditentukan oleh Expires atau Max-Age

Risiko skrip sisi klien mengakses cookie yang dilindungi dapat dikurangi dengan menyertakan bendera "HttpOnly" tambahan di header respons HTTP Set-Cookie

Akibatnya, browser tidak akan mengungkapkan cookie kepada pihak ketiga meskipun terdapat cacat cross-site scripting (XSS) di aplikasi web

Selama serangan skrip lintas situs, penyerang dapat dengan mudah mengakses cookie dan dengan menggunakan ini dia dapat membajak sesi korban

Penyerang dapat mengambil informasi sensitif yang terkandung dalam cookie

Tetapkan HTTPOnly pada cookie. Ini membantu mengurangi sebagian besar serangan XSS yang mencoba menangkap cookie dan kemungkinan membocorkan informasi sensitif atau memungkinkan penyerang menyamar sebagai pengguna

Metode HTTP TRACE yang digabungkan dengan XSS dapat membaca cookie autentikasi, bahkan jika flag HttpOnly digunakan. Jadi pastikan metode HTTP TRACE dinonaktifkan

Contoh menunjukkan respons HTTP dari server web dengan cookie yang disetel menggunakan header respons HTTP Set-cookie

    Set-Cookie: session=219ffwef9w0frtegazxw345; Path=/; Secure; HttpOnly

  

Menggunakan. NET untuk mengatur HttpOnly

Saat menyetel cookie secara manual, ada objek CookieOptions mudah yang dapat Anda gunakan untuk menyetel HttpOnly ke true

Dalam file konfigurasi PHP (php. ini), cari session. pengaturan cookie_httponly dan atur ke True

  • Jika Anda tidak memiliki akses ke konfigurasi PHP, Anda dapat mencoba menimpa pengaturan ini saat runtime

  • ini_set("session.cookie_httponly", 1);
    
    _
    1. Jika tidak berhasil, Anda harus menimpa cookie itu secara manual
    session_start();
    $params = session_get_cookie_params();
    setcookie("PHPSESSID", session_id(), 0, $params["path"], $params["domain"],
        false,  // this is the secure flag you need to set. Default is false.
        true  // this is the httpOnly flag you need to set
    );
    

    setcookie()_ definisi

    bool setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] )
    

    Perangkat lunak menggunakan cookie untuk menyimpan informasi sensitif, tetapi cookie tidak ditandai dengan bendera HttpOnly

    Cookie phpsessid dibuat tanpa bendera aman
    Deskripsi yang Diperpanjang

    Bendera HttpOnly mengarahkan browser yang kompatibel untuk mencegah skrip sisi klien mengakses cookie. Menyertakan bendera HttpOnly di header respons HTTP Set-Cookie membantu mengurangi risiko yang terkait dengan Cross-Site Scripting (XSS) di mana kode skrip penyerang mungkin mencoba membaca konten cookie dan mengekstraksi informasi yang diperoleh. Saat disetel, browser yang mendukung bendera tidak akan mengungkapkan konten cookie kepada pihak ketiga melalui skrip sisi klien yang dijalankan melalui XSS

    Cookie phpsessid dibuat tanpa bendera aman
    Hubungan

    Cookie phpsessid dibuat tanpa bendera aman
    Tabel ini menunjukkan kelemahan dan kategori tingkat tinggi yang terkait dengan kelemahan ini. Hubungan ini didefinisikan sebagai ChildOf, ParentOf, MemberOf dan memberikan wawasan ke item serupa yang mungkin ada di tingkat abstraksi yang lebih tinggi dan lebih rendah. Selain itu, hubungan seperti PeerOf dan CanAlsoBe ditentukan untuk menunjukkan kelemahan serupa yang mungkin ingin dijelajahi pengguna

    Cookie phpsessid dibuat tanpa bendera aman
    Relevan dengan tampilan “Research Concepts” (CWE-1000)

    NatureTypeIDNameChildOf

    Cookie phpsessid dibuat tanpa bendera aman
    Class - kelemahan yang dideskripsikan dengan cara yang sangat abstrak, biasanya terlepas dari bahasa atau teknologi tertentu. Lebih spesifik daripada Kelemahan Pilar, tetapi lebih umum daripada Kelemahan Dasar. Kelemahan tingkat kelas biasanya menggambarkan masalah dalam 1 atau 2 dimensi berikut. perilaku, properti, dan sumber daya. 732 Penetapan Izin yang Salah untuk Sumber Daya Penting

    Cookie phpsessid dibuat tanpa bendera aman
    Detail Latar Belakang

    Cookie HTTP adalah sepotong kecil data yang diatribusikan ke situs web tertentu dan disimpan di komputer pengguna oleh browser web pengguna. Data ini dapat dimanfaatkan untuk berbagai tujuan termasuk menyimpan informasi yang dimasukkan ke kolom formulir, merekam aktivitas pengguna, dan untuk tujuan autentikasi. Cookie yang digunakan untuk menyimpan atau merekam informasi yang dihasilkan oleh pengguna diakses dan dimodifikasi oleh kode skrip yang disematkan di halaman web. Sementara cookie yang digunakan untuk autentikasi dibuat oleh server situs web dan dikirim ke pengguna untuk dilampirkan pada permintaan di masa mendatang. Cookie autentikasi ini seringkali tidak dimaksudkan untuk diakses oleh halaman web yang dikirim ke pengguna, dan sebagai gantinya hanya dilampirkan ke permintaan di masa mendatang untuk memverifikasi detail autentikasi

    Cookie phpsessid dibuat tanpa bendera aman
    Mode Pendahuluan

    Cookie phpsessid dibuat tanpa bendera aman
    Berbagai Mode Pengenalan memberikan informasi tentang bagaimana dan kapan kelemahan ini dapat diperkenalkan. Fase mengidentifikasi suatu titik dalam siklus hidup di mana pengenalan dapat terjadi, sedangkan Catatan memberikan skenario tipikal yang terkait dengan pengenalan selama fase tertentu. FaseCatatanImplementasiArsitektur dan Desain

    Cookie phpsessid dibuat tanpa bendera aman
    Platform yang Berlaku

    Cookie phpsessid dibuat tanpa bendera aman
    Daftar ini menunjukkan kemungkinan area yang kelemahannya bisa muncul. Ini mungkin untuk Bahasa bernama tertentu, Sistem Operasi, Arsitektur, Paradigma, Teknologi, atau kelas platform semacam itu. Platform terdaftar bersama dengan seberapa sering kelemahan yang diberikan muncul untuk contoh itu

    Bahasa

    Kelas. Bukan Bahasa Khusus (Prevalensi Tidak Ditentukan)

    Teknologi

    Kelas. Berbasis Web (Prevalensi Tidak Ditentukan)

    Cookie phpsessid dibuat tanpa bendera aman
    Konsekuensi Umum

    Cookie phpsessid dibuat tanpa bendera aman
    Tabel ini menentukan konsekuensi individu yang berbeda terkait dengan kelemahan. Scope mengidentifikasi area keamanan aplikasi yang dilanggar, sedangkan Impact menjelaskan dampak teknis negatif yang muncul jika musuh berhasil mengeksploitasi kelemahan tersebut. Kemungkinan memberikan informasi tentang seberapa besar kemungkinan konsekuensi spesifik diharapkan terlihat relatif terhadap konsekuensi lain dalam daftar. Sebagai contoh, kemungkinan besar kelemahan akan dieksploitasi untuk mencapai dampak tertentu, tetapi kemungkinan kecil kelemahan akan dieksploitasi untuk mencapai dampak yang berbeda. ScopeImpactLikelihoodKerahasiaan

    Dampak Teknis. Baca Data Aplikasi

    Jika bendera HttpOnly tidak disetel, maka informasi sensitif yang disimpan dalam cookie dapat diekspos ke pihak yang tidak diinginkan

    Integritas

    Dampak Teknis. Dapatkan Hak Istimewa atau Asumsikan Identitas

    Jika cookie yang dimaksud adalah cookie autentikasi, maka tidak menyetel bendera HttpOnly memungkinkan musuh untuk mencuri data autentikasi (mis. g. , ID sesi) dan menggunakan identitas pengguna

    Cookie phpsessid dibuat tanpa bendera aman
    Kemungkinan Eksploitasi

    Cookie phpsessid dibuat tanpa bendera aman
    Contoh Demonstrasi

    Contoh 1

    Dalam contoh ini, cookie digunakan untuk menyimpan ID sesi untuk interaksi klien dengan situs web. Tujuannya agar cookie akan dikirim ke situs web dengan setiap permintaan yang dibuat oleh klien

    Cuplikan kode di bawah membuat cookie baru untuk menyimpan ID sesi

    String sessionID = generateSessionId();
    Cookie c = Cookie baru("session_id", sessionID);
    tanggapan. tambahkanCookie(c);

    Bendera HttpOnly tidak disetel untuk cookie. Penyerang yang dapat melakukan XSS dapat memasukkan skrip berbahaya seperti

    Contoh Bahasa. JavaScript

    dokumen. tulis(''

    Saat klien memuat dan menjalankan skrip ini, klien membuat permintaan ke situs web yang dikontrol penyerang. Penyerang kemudian dapat mencatat permintaan dan mencuri cookie

    Untuk mengurangi risiko, gunakan metode setHttpOnly(true).

    String sessionID = generateSessionId();
    Cookie c = Cookie baru("session_id", sessionID);
    c. setHttpOnly(benar);
    tanggapan. tambahkanCookie(c);

    Cookie phpsessid dibuat tanpa bendera aman
    Contoh yang diamati

    Keterangan Referensi

    CMS yang ditulis dengan Python tidak menyertakan flag HTTPOnly di header Set-Cookie, memungkinkan penyerang jarak jauh untuk mendapatkan informasi yang berpotensi sensitif melalui akses skrip ke cookie ini

    Alat untuk mengelola komunikasi terenkripsi tidak menggunakan bendera HttpOnly

    Cookie phpsessid dibuat tanpa bendera aman
    Mitigasi Potensial

    Fase. Penerapan

    Manfaatkan flag HttpOnly saat menyetel cookie sensitif sebagai respons

    Catatan. Meskipun mitigasi ini efektif untuk melindungi cookie dari mesin scripting browser sendiri, komponen atau plugin pihak ketiga mungkin memiliki mesin sendiri yang mengizinkan akses ke cookie. Penyerang mungkin juga dapat menggunakan XMLHTTPResponse untuk membaca header secara langsung dan mendapatkan cookie

    Cookie telah disetel tanpa secure flag, artinya cookie dapat diakses melalui koneksi yang tidak terenkripsi .
    Bahkan aplikasi yang beroperasi melalui koneksi SSL harus memiliki flag aman yang ditetapkan pada cookie —khususnya cookie yang berisi data sesi, sebagai perlindungan minimal terhadap serangan.
    Jika bendera HttpOnly tidak disetel, maka informasi sensitif yang disimpan dalam cookie dapat diekspos ke pihak yang tidak diinginkan . Jika cookie yang dimaksud adalah cookie autentikasi, maka tidak menyetel bendera HttpOnly memungkinkan musuh untuk mencuri data autentikasi (mis. g. , ID sesi) dan menggunakan identitas pengguna.

    Mengapa kuki harus memiliki bendera aman?

    Atribut aman adalah opsi yang dapat diatur oleh server aplikasi saat mengirim cookie baru ke pengguna dalam Respons HTTP. Tujuan dari atribut secure adalah untuk mencegah cookie diamati oleh pihak yang tidak berwenang karena pengiriman cookie dalam teks yang jelas .