I CORS 필터의 다음과 같은 구현이 :은 어떻게 CORS 필터는 XSS 공격으로부터 나를 보호 않습니다
@Singleton
@Provider
public class CORSFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
final int ACCESS_CONTROL_MAX_AGE_IN_SECONDS = 12 * 60 * 60;
MultivaluedMap<String, Object> headers = responseContext.getHeaders();
headers.add(ACCESS_CONTROL_ALLOW_ORIGIN, "*");
headers.add(ACCESS_CONTROL_ALLOW_HEADERS, "origin, content-type, accept, authorization");
headers.add(ACCESS_CONTROL_ALLOW_CREDENTIALS, "true");
headers.add(ACCESS_CONTROL_ALLOW_METHODS, "GET, POST, PUT, DELETE, OPTIONS, HEAD");
headers.add(ACCESS_CONTROL_MAX_AGE, ACCESS_CONTROL_MAX_AGE_IN_SECONDS);
}
}
출처 : 그러나
https://gist.github.com/yunspace/36b0546245c5348a34ed
, 난 아직도 이해가 안 돼요을 이렇게하면 XSS와 브라우저가 추가 된 헤더를 처리하는 방식을 방지해야합니다. 이 코드는 어떻게 XSS 공격으로부터 나를 보호합니까?
서버에서 모든 출처의 요청을 수락한다고 말한 이후로는 그렇지 않습니다. 해당 필터를 제거하면 도메인에서 오는 스크립트 만 서버에 요청을 보낼 수 있습니다. CORS는 기본적으로 사용자를 보호합니다. 이 필터를 추가하면 모든 출처의 스크립트가 요청을 보낼 수있게하여 보호 기능을 제거합니다. –
[Spring Data Rest and Cors]의 가능한 복제본 (http://stackoverflow.com/questions/31724994/spring-data-rest-and-cors) – Andremoniy