크로스 도메인
리소스는 요청하는 리소스가 제공하는 첫 번째 리소스와 다른 도메인 이름 일 때 크로스 사이트 HTTP 요청을 시작합니다.
예를 들어, 도메인 이름 A (http://domainb.foo)가있는 웹 응용 프로그램은 태그를 통해 도메인 이름 B (http://domainb.foo/image.jpg) 사이트의 특정 이미지 리소스 (http://domainb.foo/image.jpg)를 소개합니다. 도메인 이름 A가있는 웹 응용 프로그램은 브라우저가 크로스 사이트 HTTP 요청을 시작하게됩니다. 오늘날의 웹 개발에서 CSS, 이미지, JavaScript 스크립트 및 기타 리소스를 포함한 다양한 리소스를로드하기 위해 간단한 HTTP 요청을 사용하여 일반적이고 인기있는 방법이되었습니다.
아시다시피, 보안상의 이유로 브라우저는 스크립트에서 시작된 크로스 사이트 요청을 제한합니다. 예를 들어, XMLHTTPREQUEST 객체를 사용하여 HTTP 요청을 시작하려면 동일한 오리핀 정책을 준수해야합니다. 구체적으로, 웹 애플리케이션은 XMLHTTPREQUEST 객체를 사용하여로드하는 소스 도메인 이름에 HTTP 요청을 시작할 수 있으며 다른 도메인 이름에 대한 요청을 시작할 수 없습니다. 보다 강력하고 풍부하고 안전한 웹 애플리케이션을 개발하기 위해 개발자는 보안을 잃지 않고 더욱 강력하고 풍부 해지기를 간절히 원합니다. 예를 들어 XMLHTTPREQUEST를 사용하여 크로스 사이트 HTTP 요청을 시작할 수 있습니다. (크로스 도메인에 대한이 설명은 부정확합니다. 크로스 도메인은 브라우저가 크로스 도메인 요청을 제한하는 것이 아니라 크로스 도메인 요청을 정상적으로 시작할 수 있지만 결과는 브라우저에 의해 인터셉트됩니다. 가장 좋은 예는 CSRF 교차 도메인 공격의 원칙이 서버의 원칙에 관계없이 서버의 원칙을 보낼 수는 없습니다. Chrome 및 Firefox와 같은 HTTPS 도메인은 요청이 발행되기 전에 요청합니다.
더보기 : https://developer.mozilla.org/zh-cn/docs/web/http/access_control_cors
크로스
Cors는 전체 이름 Cross Origin 리소스 공유입니다. 서버는 클라이언트가 AJAX 크로스 도메인 요청을 발행 할 수 있도록 관련 응답 헤더 정보 만 추가하면됩니다.
@crossorigin
1. 컨트롤러의 모든 요청을 직접 사용하여 크로스 도메인이 될 수 있습니다. Origins = "*"는 모든 요청을 요청할 수 있음을 의미합니다.
@crossorigin (origins = "http://domain2.com", maxage = 3600)@restcontroller@restontroller ( "/account") public class accountcontroller {@requestmapping ( "/{id}") public acc "/{id}") public void 제거 (@pathvariable long id) {// ...}} 2. 방법에 사용하십시오
@crossorigin (maxage = 3600) @restcontroller @recomemapping ( "/account") public class accountcontroller {@crossorigin ( "http://domain2.com") @requestmapping ( "/{id}") public account (@pathvariable long id) {... // ... "/{id}") public void 제거 (@pathvariable long id) {// ...}}다른 방법 :
Corsfilter의 주요 목적은 필터를 사용하여 달성 할 수있는 관련 정보 헤더를 추가하는 것입니다.
@ConfigurationPublic Class BeanConfiguration {@bean public corsfilter corsfilter () {Final UrlBasedCorsConfigUrationSource urlbasedCorsConfigUrationSource = new urlBasedCorsConfigUrationSource (); 최종 CorsConfiguration CorsConfiguration = New CorsConfiguration (); CorsConfiguration.SetallowedCredentials (True); corsconfiguration.addallowedorigin ( "*"); corsconfiguration.addallowedHeader ( "*"); corsconfiguration.addallowedMethod ( "*"); urlbasedcorsconfigurationsource.registercorsconfiguration ( "/**", corsconfiguration); New Corsfilter (urlbasedCorsConfigUrationSource)를 반환합니다. }}Access-Control-Ollow-Origin : 액세스 할 수있는 클라이언트 도메인 이름 (예 : http://web.xxx.com). *이면 모든 도메인에서 액세스 할 수 있음을 의미합니다. 즉, 제한이 필요하지 않습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.