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