0
,我有以下实施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