Alasan yang baik adalah untuk keamanan - ini dapat mencegah serangan CSRF karena header ini tidak dapat ditambahkan ke domain lintas permintaan AJAX tanpa persetujuan server melalui CORS .
Hanya tajuk berikut yang diizinkan lintas domain:
- Menerima
- Bahasa Terima
- Konten-Bahasa
- ID Acara Terakhir
- Jenis konten
yang lain menyebabkan permintaan "pra-penerbangan" dikeluarkan di browser yang didukung CORS.
Tanpa CORS tidak mungkin untuk ditambahkan X-Requested-With
permintaan XHR lintas domain.
Jika server memeriksa apakah tajuk ini ada, ia tahu bahwa permintaan tersebut tidak dimulai dari domain penyerang yang mencoba mengajukan permintaan atas nama pengguna dengan JavaScript. Ini juga memeriksa bahwa permintaan tersebut tidak POSTed dari bentuk HTML biasa, yang lebih sulit untuk memverifikasi itu bukan lintas domain tanpa menggunakan token. (Namun, memeriksa Origin
tajuk bisa menjadi opsi di browser yang didukung, meskipun Anda akan membuat browser lama menjadi rentan .)
Bypass Flash baru ditemukan
Anda mungkin ingin menggabungkan ini dengan token , karena Flash yang berjalan di Safari pada OSX dapat mengatur header ini jika ada langkah redirect . Tampaknya itu juga berfungsi di Chrome , tetapi sekarang diatasi. Lebih detail di sini termasuk berbagai versi yang terpengaruh.
OWASP Merekomendasikan menggabungkan ini dengan pemeriksaan Asal dan Perujuk :
Teknik pertahanan ini secara khusus dibahas dalam bagian 4.3 dari Pertahanan Kuat untuk Pemalsuan Permintaan Lintas Situs. Namun, bypass pertahanan ini menggunakan Flash didokumentasikan pada awal 2008 dan lagi baru-baru ini pada tahun 2015 oleh Mathias Karlsson untuk mengeksploitasi kelemahan CSRF di Vimeo. Namun, kami percaya bahwa serangan Flash tidak dapat menipu header Origin atau Referer sehingga dengan memeriksa keduanya, kami yakin kombinasi cek ini akan mencegah serangan bypass CSRF Flash. (CATATAN: Jika ada yang bisa mengkonfirmasi atau menyangkal keyakinan ini, beri tahu kami agar kami dapat memperbarui artikel ini)
Namun, untuk alasan yang sudah dibahas memeriksa Asal bisa rumit.
Memperbarui
Menulis posting blog yang lebih mendalam tentang CORS, CSRF dan X-Requested-With di sini .