CORS过滤器如何保护我免受XSS攻击

时间:2017-02-10 14:14:05

标签: java security xss

我有以下CORS过滤器的实现:

@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攻击?

1 个答案:

答案 0 :(得分:0)

CORS不保护您免受XSS攻击。

同源策略(SOP)阻止一个域从另一个域获取客户端数据。

CORS允许将其他域列入白名单,以便获取客户端数据。

XSS是一种完成同样的攻击。<​​/ p>

如果没有启用CORS,您的网站会更安全,因为SOP是默认的&#34;安全&#34;模式。启用CORS会降低SOP规则的安全性。

如果您启用了CORS,XSS并不关心,如果您有XSS漏洞,则应通过正确的编码和实施内容安全策略(CSP)来缓解此漏洞。