2017-02-10 18 views
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?

+1

Это не так, поскольку вы сказали, что ваш сервер принимает запросы от любого источника. Удалите этот фильтр, и только сценарии, поступающие из вашего домена, смогут отправлять запросы на ваш сервер. По умолчанию CORS защищает вас. Добавление этого фильтра удаляет защиту, позволяя скриптам любого происхождения отправлять вам запросы. –

+0

Возможный дубликат [Spring Data Rest and Cors] (http://stackoverflow.com/questions/31724994/spring-data-rest-and-cors) – Andremoniy

ответ

0

CORS не защищает вас от XSS.

Политика одного и того же происхождения (SOP) не позволяет одному домену получать данные на стороне клиента из другого домена.

CORS разрешает использовать другие домены, чтобы они могли получать данные на стороне клиента.

XSS - это атака, которая выполняет то же самое.

Без включения CORS ваш сайт более безопасен, поскольку SOP находится в режиме «безопасного» режима по умолчанию. Включение CORS приведет к ослаблению безопасности правил SOP.

XSS не имеет значения, включен ли CORS или нет, если у вас есть уязвимость XSS, вы должны смягчить ее путем правильной кодировки и реализации политики безопасности контента (CSP).

 Смежные вопросы

  • Нет связанных вопросов^_^