Domaine croisé
Une ressource initie une demande HTTP inter-site lorsqu'une ressource qu'il demande est un nom de domaine différent de la première ressource qu'il fournit.
Par exemple, une application Web avec le nom de domaine A (http://domainb.foo) présente une certaine ressource d'image (http://domainb.foo/image.jpg) du site du nom de domaine B (http://domainb.foo/image.jpg) via une balise. L'application Web avec le nom de domaine A obligera le navigateur à initier une demande HTTP inter-site. Dans le développement Web d'aujourd'hui, l'utilisation de demandes HTTP inter-sites pour charger diverses ressources (y compris CSS, Images, Scripts JavaScript et autres ressources) est devenue une manière commune et populaire.
Comme vous le savez, pour des raisons de sécurité, les navigateurs restreignent les demandes de site transversal initiées dans les scripts. Par exemple, pour initier des demandes HTTP à l'aide de l'objet XMLHTTPRequest, vous devez vous conformer à la politique d'origine même. Plus précisément, une application Web ne peut et ne peut utiliser l'objet XMLHTTPRequest pour lancer des demandes HTTP au nom de domaine source qu'il charge, et ne peut pas initier les demandes à aucun autre nom de domaine. Afin de développer des applications Web plus puissantes, plus riches et plus sécurisées, les développeurs sont impatients de devenir plus puissants et plus riches sans perdre la sécurité. Par exemple, vous pouvez utiliser XMLHTTPRequest pour initier une demande HTTP inter-site. (Cette description du domaine transversal est inexacte. Le domaine croisé n'est pas que le navigateur restreint les demandes de domaine transversal, mais les demandes de domaine transversal peuvent être initiées normalement, mais le résultat est intercepté par le navigateur. Le meilleur exemple est le principe de l'attaque croisée du CSRF. Les domaines HTTPS, tels que Chrome et Firefox.
Plus: https://developer.mozilla.org/zh-cn/docs/web/http/access_control_cors
Cros
CORS est le partage complet des ressources d'origine du nom Cross. Le serveur doit seulement ajouter des informations d'en-tête de réponse pertinentes pour permettre au client d'émettre des demandes de domaine transversal AJAX.
@Crossorigin
1. Utiliser directement toutes les demandes du contrôleur peut être inter-domaine, Origins = "*" signifie que toutes les demandes peuvent être demandées.
@Crossorigin (origines = "http://domain2.com", maxage = 3600) @ restController @ requestMapping ("/ Account") public Class CompteController {@RequestMapping ("/ {id}") Public Accounty Retreve "/ {id}") public void retira (@pathvariable long id) {// ...}} 2. Utilisez-le dans la méthode
@Crossorigin (maxage = 3600) @ restController @ requestmapping ("/ compte") Class public AccountController {@crossorigin ("http://domain2.com") @RequestMapping ("/ {id}") Public Account Retrieve (@Pathvariable Long Id) {/ ...} @requestmaping (méthode = requestMeth.Dlelete, PATH =/ ... "/ {id}") public void retira (@pathvariable long id) {// ...}}Une autre méthode:
L'objectif principal de CORSFILTER est d'ajouter des en-têtes d'information pertinents, qui peuvent également être obtenus à l'aide du filtre.
@ConfigurationPublic Class BeanConfiguration {@Bean public corsFilter corsFilter () {final urlbasedCorsConfigurationsource UrlBasedCorsCorsCurationsource = new UrlBasedCorsCorsCuRationsource (); CORSCONFIGURATION FINAL CORSCONFIGURATION = NOUVEAU CORSCONFIGURATION (); CorsConfiguration.SetAllowedCredentials (true); CorsConfiguration.AddallowEdorigin ("*"); CorsConfiguration.AddallowedHeader ("*"); CorsConfiguration.AddallowedMethod ("*"); UrlbasedCorsConfigurationsource.RegisterCorsConfiguration ("/ **", CorsConfiguration); Renvoie un nouveau CORSFILTER (UrlBasedCorsConfigurationsource); }}Access-Control-Allow-Origin: Le nom de domaine client qui est autorisé à accéder, par exemple: http://web.xxx.com. Si *, cela signifie qu'il est accessible à partir de n'importe quel domaine, c'est-à-dire aucune restriction n'est requise.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.