WebAPI saya diterapkan di lingkungan Intranet . Itu berarti keamanan bukanlah urusan saya.
Tampaknya CORS jauh lebih bersahabat dengan klien dan lebih mudah diimplementasikan .
Ada kekhawatiran lain yang mungkin saya lewatkan?
sumber
WebAPI saya diterapkan di lingkungan Intranet . Itu berarti keamanan bukanlah urusan saya.
Tampaknya CORS jauh lebih bersahabat dengan klien dan lebih mudah diimplementasikan .
Ada kekhawatiran lain yang mungkin saya lewatkan?
Ini adalah pertanyaan yang cukup luas, dan bisa menjamin wiki itu sendiri. Ada juga sedikit di google mengenai keduanya, tapi saya pikir saya bisa mencapai beberapa poin penting.
Jika tidak satu pun dari ini yang menjadi perhatian, saya akan memilih apa pun yang paling mudah atau paling Anda kenal. Jika ini adalah lemparan, coba CORS, karena ini adalah solusi yang lebih "modern" dan JSONP lebih merupakan peretasan, mengubah data menjadi skrip untuk melewati batasan lintas domain. Namun, CORS biasanya memerlukan lebih banyak konfigurasi sisi server.
Jika Anda menggunakan jQuery, saya tidak yakin dari mana Anda mendapatkan gagasan bahwa CORS " jauh lebih bersahabat dengan klien dan lebih mudah diimplementasikan ." Lihat https://gist.github.com/3131951 . jQuery mengabstraksi detail JsonP, dan CORS sebenarnya bisa agak rumit untuk diterapkan di sisi server Anda tergantung pada teknologi apa yang Anda gunakan.
Saya baru-baru ini mengembangkan aplikasi web, menggunakan jquery dan backbone.js, yang membaca dari berbagai layanan web lintas-domain yang kami kontrol, dan akhirnya menggunakan Json-P daripada CORS karena kami perlu mendukung IE7 dan itu sedikit lebih sederhana. sisi server (kami menjalankan Django w / DjangoRestFramework), dan hampir sama dengan jquery pada sisi klien.
Anda sangat tepat. Jika Anda tidak harus mendukung browser lama (yang dirilis 6+ tahun yang lalu) saya pasti akan menggunakan CORS.
CORS lebih mudah diimplementasikan, karena jika API Anda belum mendukung JSONP atau CORS, lebih mudah untuk menambahkan beberapa header statis daripada memodifikasi isi respons.
Juga lebih mudah untuk menyimpan permintaan dalam cache menggunakan CORS. Setiap permintaan JSONP harus dinamis bahkan dengan konten memcache.
JSONP masih merupakan tag skrip, jadi apa pun yang terjadi itu akan menyebabkan beberapa tingkat perilaku sinkron. CORS tidak akan.
JSONP hanya bisa menjadi GET. Dan seperti CORS, Anda dapat menggunakan metode apa pun.
sumber
Last but not least, jika Anda menggunakan jQuery v1.x , pertimbangkan bahwa
error
dancomplete
(atau lebih baikfail
danalways
) penangan masih tidak dipanggil untuk permintaan JSONP dalam beberapa situasi umum (misalnya kesalahan jaringan). Tentu ada solusi (pengaturan waktu tunggu, plugin jQuery-JSONP), tetapi saya menemukan CORS tidak terlalu mengganggu, terutama ketika permintaan lintas domain hanya datang dari perangkat seluler (yaitu aplikasi hybrid) sehingga Anda tidak memerlukan dukungan untuk browser yang tidak beruntung.sumber
Menurut Dokumentasi Musim Semi, JSONP adalah peretasan dan bukan solusi yang tepat untuk Berbagi Sumber Daya Lintas Asal. Jadi jika keamanan bukan urusan Anda, cukup periksa asal domain di server Anda dan tambahkan header Access-Control-Allow-Origin Response.
sumber
API Web kami tidak berfungsi di Safari (iOS 9.1) dengan Autentikasi Windows. Itu bekerja dengan Safari + iOS 8.4. Ketika kami mengubah ke JSONP Safari mulai bekerja kembali. Cek link ini untuk informasi lebih lanjut.
sumber