Domain silang
Sumber daya memulai permintaan HTTP lintas situs ketika sumber daya yang diminta adalah nama domain yang berbeda dari sumber daya pertama yang disediakannya.
Misalnya, aplikasi web dengan nama domain A (http://domainb.foo) memperkenalkan sumber daya gambar tertentu (http://domainb.foo/image.jpg) dari situs nama domain B (http:/domainb.foo/image.jpg) melalui tag. Aplikasi web dengan nama domain A akan menyebabkan browser memulai permintaan HTTP lintas situs. Dalam pengembangan web saat ini, menggunakan permintaan HTTP lintas situs untuk memuat berbagai sumber daya (termasuk CSS, gambar, skrip JavaScript, dan sumber daya lainnya) telah menjadi cara yang umum dan populer.
Seperti yang Anda ketahui, untuk alasan keamanan, browser membatasi permintaan lintas situs yang dimulai dalam skrip. Misalnya, untuk memulai permintaan HTTP menggunakan objek XMLHTTPREQUEST, Anda harus mematuhi kebijakan asal-kata yang sama. Secara khusus, aplikasi web dapat dan hanya dapat menggunakan objek XMLHTTPREQUEST untuk memulai permintaan HTTP ke nama domain sumber yang dimuat, dan tidak dapat memulai permintaan ke nama domain lainnya. Untuk mengembangkan aplikasi web yang lebih kuat, lebih kaya dan lebih aman, pengembang ingin menjadi lebih kuat dan lebih kaya tanpa kehilangan keamanan. Misalnya, Anda dapat menggunakan XMLHTTPREQUEST untuk memulai permintaan HTTP lintas situs. (Deskripsi domain silang ini tidak akurat. Domain silang bukan karena browser membatasi permintaan domain lintas, tetapi permintaan domain silang dapat dimulai secara normal, tetapi hasilnya dicegat oleh browser. Contoh yang tidak ada yang tidak dikeluarkan oleh catatan CSRF. Domain HTTPS, seperti Chrome dan Firefox.
Lebih lanjut: https://developer.mozilla.org/zh-cn/docs/web/http/access_control_cors
Cros
CORS adalah nama lengkap berbagi sumber daya asal. Server hanya perlu menambahkan informasi header respons yang relevan untuk memungkinkan klien mengeluarkan permintaan domain lintas AJAX.
@Crossorigin
1. Langsung gunakan semua permintaan pada pengontrol dapat berupa domain silang, Origins = "*" berarti semua permintaan dapat diminta.
@Crossorigin (origins = "http://domain2.com", maxage = 3600)@restcontroller@requestMapping ("/Account") Public Class AccountController {@RequestMapping ("/{id}") Public Retrieve (@pathvariable ID panjang) {// ... "/{id}") public void hapus (@pathvariable long id) {// ...}} 2. Gunakan dalam metode ini
@Crossorigin (maxage = 3600) @restcontroller @requestMapping ("/Account") Public Class AccountController {@crossorigin ("http://domain2.com") @RequestMapping ("/{id}") retrieve public retrieve (@pathvariable long id) {/{id {{{ @retrieve (@pathvariable id) {" "/{id}") public void hapus (@pathvariable long id) {// ...}}Metode lain:
Tujuan utama Corsfilter adalah untuk menambahkan header informasi yang relevan, yang juga dapat dicapai dengan menggunakan filter.
@ConfigurationPublic kelas beanConfiguration {@Bean corsfilter corsfilter () {final urlbasedCorsConfigurationSource urlbasedCorsConfigurationSource = UrlbasedCorsConfigurationSource (); Corsconfiguration corsconfiguration akhir = corsconfiguration baru (); corsconfiguration.setallowedcredentials (true); corsconfiguration.addallowedorigin ("*"); corsconfiguration.addallowedheader ("*"); corsconfiguration.addallowedmethod ("*"); urlbasedCorsConfigurationsource.registerCorsConfiguration ("/**", corsconfiguration); mengembalikan Corsfilter baru (urlbasedCorsConfigurationsource); }}Access-Control-Allow-Origin: Nama domain klien yang diizinkan untuk diakses, misalnya: http://web.xxx.com. Jika *, itu berarti dapat diakses dari domain apa pun, yaitu, tidak ada batasan yang diperlukan.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.