Skip to main content

Безопасность

В этом разделе рассказывается о том, как включить защиту от csrf атак и разрешить междоменные запросы.

Подключение CSRF и CORS в приложении

Для создания бина Customizer для CORS задайте настройку n2o.security.cors.enabled=true.
Для создания бина Customizer для CSRF задайте настройку n2o.security.csrf.enabled=true.

Подключение в конфигурацию безопасности
    @Bean
public SecurityFilterChain filterChain(HttpSecurity http, Customizer<CorsConfigurer<HttpSecurity>> n2oCorsCustomizer, Customizer<CsrfConfigurer<HttpSecurity>> n2oCsrfCustomizer) throws Exception {
...
http.csrf(n2oCsrfCustomizer);
http.cors(n2oCorsCustomizer);
...
return http.build();
}

Настройки CSRF защиты

Настройки защиты от межсайтовой подделки запросов (Cross-Site Request Forgery).

НаименованиеТипОписаниеЗначение по умолчанию
n2o.security.csrf.enabledbooleanВключить CSRF защитуfalse
n2o.security.csrf.cookie-namestringИмя cookie для CSRF токенаXSRF-TOKEN
n2o.security.csrf.header-namestringИмя HTTP заголовка для CSRF токенаX-XSRF-TOKEN
n2o.security.csrf.parameter-namestringИмя параметра для CSRF токена_csrf
n2o.security.csrf.cookie-pathstringПуть для CSRF cookie/
n2o.security.csrf.ignoring-request-matchersСписок строкСписок URL patterns, которые исключаются из CSRF защиты. Поддерживает Ant-style patterns (например: /api/public/**)[]
n2o.security.csrf.securebooleanИспользовать Secure flag для cookies (только HTTPS)true
Пример настройки CSRF защиты
n2o:
security:
csrf:
enabled: true
ignoring-request-matchers:
- /api/public/**
- /health

Настройки для session cookies.

НаименованиеТипОписаниеЗначение по умолчанию
n2o.security.cookie.same-siteenumSameSite политика для session cookie. Возможные значения: Strict, Lax, NoneLax
Пример настройки Cookie
n2o:
security:
cookie:
same-site: Strict

Настройки CORS

Настройки междоменных запросов (Cross-Origin Resource Sharing).

НаименованиеТипОписаниеЗначение по умолчанию
n2o.security.cors.enabledbooleanВключить CORSfalse
n2o.security.cors.allowed-originsСписок строкРазрешенные origins для CORSnull
n2o.security.cors.allowed-methodsСписок строкРазрешенные методы для CORSGET, OPTIONS
n2o.security.cors.allowed-headersСписок строкРазрешенные заголовки для CORS*
n2o.security.cors.exposed-headersСписок строкСписок заголовков, которые может содержать фактический ответ и могут быть доступныnull
n2o.security.cors.allow-credentialsbooleanДолжен ли браузер отправлять учетные данные, такие как файлы cookie, вместе с междоменными запросамиfalse
Пример настройки CORS
n2o:
security:
cors:
enabled: true
allowed-origins:
- https://example.com
- https://app.example.com
allowed-methods:
- GET
- POST
- PUT
- DELETE
allowed-headers:
- Content-Type
- Authorization
exposed-headers:
- X-Total-Count
allow-credentials: true