Saya memiliki dua webapps WebApp1 dan WebApp2 dalam dua domain berbeda.
- Saya menetapkan cookie di WebApp1 di HttpResponse.
- Bagaimana cara membaca cookie yang sama dari HttpRequest di WebApp2?
Saya tahu kedengarannya aneh karena cookie khusus untuk domain yang diberikan, dan kami tidak dapat mengaksesnya dari domain yang berbeda; Namun saya pernah mendengar tentang cookie CROSS-DOMAIN yang dapat dibagikan di beberapa webapps. Bagaimana cara menerapkan persyaratan ini menggunakan cookie CROSS-DOMAIN?
Catatan: Saya mencoba ini dengan webapp J2EE
sumber
Seperti yang orang lain katakan, Anda tidak dapat membagikan cookie, tetapi Anda dapat melakukan sesuatu seperti ini:
Tentu saja, itu tidak sepenuhnya aman, dan Anda harus membuat semacam protokol internal antara aplikasi Anda untuk melakukannya.
Terakhir, akan sangat mengganggu bagi pengguna jika Anda melakukan hal seperti itu di setiap permintaan, tetapi tidak jika itu hanya yang pertama.
Tapi saya pikir tidak ada cara lain ...
sumber
cookiebaker
akan lebih baik ;-)Sejauh yang saya tahu, cookie dibatasi oleh kebijakan "asal sama". Namun, dengan CORS Anda dapat menerima dan menggunakan cookie "Server B" untuk membuat sesi persisten dari "Server A" pada "Server B".
Meskipun, ini memerlukan beberapa tajuk di "Server B":
Dan Anda harus mengirim tanda " withCredentials " pada semua permintaan "Server A" (mis:
xhr.withCredentials = true;
)Anda dapat membacanya di sini:
http://www.html5rocks.com/en/tutorials/cors/
https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS
sumber
Tidak ada yang namanya cookie lintas domain. Anda dapat membagikan cookie antara
foo.example.com
danbar.example.com
tetapi tidak pernah antaraexample.com
danexample2.com
dan itu untuk alasan keamanan.sumber
foo.example.com
danbar.example.com
?Solusi paling cerdas adalah mengikuti jalur facebook dalam hal ini. Bagaimana facebook tahu siapa Anda saat Anda mengunjungi domain apa pun? Ini sebenarnya sangat sederhana :
Tombol Suka sebenarnya memungkinkan Facebook untuk melacak semua pengunjung situs eksternal, tidak peduli apakah mereka mengkliknya atau tidak. Facebook dapat melakukannya karena mereka menggunakan iframe untuk menampilkan tombol. Iframe adalah sesuatu seperti jendela peramban yang disematkan di dalam suatu halaman. Perbedaan antara menggunakan iframe dan gambar sederhana untuk tombol adalah iframe berisi halaman web lengkap - dari Facebook . Tidak banyak yang terjadi di halaman ini, kecuali tombol dan informasi tentang berapa banyak orang menyukai halaman saat ini.
Jadi ketika Anda melihat tombol suka di cnn.com, Anda sebenarnya mengunjungi halaman Facebook secara bersamaan. Itu memungkinkan Facebook untuk membaca cookie di komputer Anda, yang telah dibuatnya terakhir kali Anda masuk ke Facebook.
Aturan keamanan mendasar di setiap browser adalah bahwa hanya situs web yang telah membuat cookie yang dapat membacanya nanti. Dan itulah keuntungan dari iframe: memungkinkan Facebook untuk membaca cookie Facebook Anda bahkan ketika Anda mengunjungi situs web yang berbeda. Begitulah cara mereka mengenali Anda di cnn.com dan menampilkan teman-teman Anda di sana.
Sumber:
sumber
Lakukan apa yang dilakukan Google. Buat file PHP yang menetapkan cookie di ketiga domain. Kemudian pada domain tempat tema akan diatur, buat file HTML yang akan memuat file PHP yang menetapkan cookie pada 2 domain lainnya. Contoh:
Kemudian tambahkan callback onload pada tag tubuh. Dokumen hanya akan memuat ketika gambar benar-benar dimuat yaitu ketika cookie diatur pada 2 domain lainnya. Onback Callback:
Kami menetapkan cookie pada domain lain menggunakan file PHP seperti ini:
Sekarang cookie diatur pada tiga domain.
sumber
Anda tidak dapat membagikan cookie di seluruh domain. Namun Anda dapat mengizinkan semua subdomain untuk memiliki akses. Untuk mengizinkan semua subdomain
example.com
memiliki akses, setel domain ke.example.com
.Namun tidak mungkin memberikan
otherexample.com
akses keexample.com
cookie.sumber
.google.com
cookie muncul saat menjelajah ke YouTube?Anda dapat mencoba untuk mendorong val cookie ke domain lain menggunakan tag gambar.
Jarak tempuh Anda mungkin berbeda ketika mencoba melakukan ini karena beberapa browser mengharuskan Anda memiliki Kebijakan P3P yang tepat pada domain WebApp2 atau browser akan menolak cookie.
Jika Anda melihat kebijakan p3p plus.google.com Anda akan melihat bahwa kebijakan mereka adalah:
CP = "Ini bukan kebijakan P3P! Lihat http://www.google.com/support/accounts/bin/answer.py?hl=id&answer=151657 untuk info lebih lanjut."
itu adalah kebijakan yang mereka gunakan untuk tombol +1 mereka untuk permintaan lintas domain ini.
Peringatan lain adalah bahwa jika Anda menggunakan https pastikan bahwa tag gambar mengarah ke alamat https juga jika tidak, cookie tidak akan ditetapkan.
sumber
Ada ikhtisar yang layak tentang bagaimana Facebook melakukannya di sini di nfriedly.com
Ada juga Browser Fingerprinting, yang tidak sama dengan cookie, tetapi melayani tujuan serupa karena membantu Anda mengidentifikasi pengguna dengan tingkat kepastian yang adil. Ada posting di sini di Stack Overflow yang merujuk pada satu metode sidik jari
sumber
Orang dapat menggunakan iframe yang tidak terlihat untuk mendapatkan cookie. Katakanlah ada dua domain, a.com dan b.com. Untuk index.html domain a.com orang dapat menambahkan (perhatikan tinggi = 0 lebar = 0):
Dengan begitu situs web Anda akan mendapatkan cookie b.com dengan asumsi bahwa http://b.com menetapkan cookie.
Hal berikutnya adalah memanipulasi situs di dalam iframe melalui JavaScript. Operasi di dalam iframe dapat menjadi tantangan jika seseorang tidak memiliki domain kedua. Tetapi jika memiliki akses ke kedua domain merujuk halaman web yang tepat di src iframe harus memberikan cookie yang ingin Anda dapatkan.
sumber
Web.config
Sertakan asal UI dan setel Perbolehkan Crentials menjadi true
sumber
Saya telah membuat modul NPM, yang memungkinkan Anda untuk berbagi data yang disimpan secara lokal di seluruh domain: https://www.npmjs.com/package/cookie-toss
Dengan menggunakan iframe yang dihosting di Domain A, Anda dapat menyimpan semua data pengguna Anda di Domain A, dan referensi data itu dengan memposting permintaan ke iframe Domain A.
Dengan demikian, Domain B, C, dll. Dapat menyuntikkan iframe dan mengirim permintaan kepadanya untuk menyimpan dan mengakses data yang diinginkan. Domain A menjadi hub untuk semua data bersama.
Dengan daftar putih domain di dalam Domain A, Anda dapat memastikan hanya situs dependen Anda yang dapat mengakses data di Domain A.
Kuncinya adalah memiliki kode di dalam iframe di Domain A yang dapat mengenali data mana yang diminta. README dalam modul NPM di atas masuk lebih dalam ke prosedur.
Semoga ini membantu!
sumber
Baca
Cookie
masukWeb Api
sumber