15.5. 필터 구성
필터를 사용하면 요청의 일부 측면을 수정하고 서술자를 사용하여 필터가 실행되는 시기를 제어할 수 있습니다. 필터의 몇 가지 일반적인 사용 사례에는 헤더 설정 또는 GZIP 압축이 포함됩니다.
필터는 JBoss EAP 6에서 사용되는 글로벌 구성 요소와 기능적으로 동일합니다.
다음 유형의 필터를 정의할 수 있습니다.
- custom-filter
- 오류 페이지
- expression-filter
- gzip
- MOD-cluster
- request-limit
- response-header
- 재작성
15.5.1. 관리 CLI 및 관리 콘솔을 사용하여 파일 처리기 관리 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 관리 CLI 및 관리 콘솔을 사용하여 Cryostat 하위 시스템에서 필터를 관리하는 방법을 설명합니다. 필요에 따라 기존 필터를 업데이트하거나 새 필터를 생성하거나 필터를 삭제할 수 있습니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 관리 콘솔에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
관리 콘솔을 사용하여 파일 처리기 관리
구성
관리 CLI를 사용하여 파일 처리기 관리
다음 절차에서는 관리 CLI를 사용하여 필터를 구성하는 방법을 보여줍니다.
프로세스
기존 필터 업데이트
- 관리 CLI에 연결합니다.
다음 명령을 실행하여 필터의 속성을 업데이트합니다.
---- /subsystem=undertow/configuration=filter/response-header=myHeader:write-attribute(name=header-value,value="JBoss-EAP") ----서버를 다시 로드하여 변경 사항을 적용합니다.
---- reload ----
새 필터 생성
- 관리 CLI에 연결합니다.
다음 명령을 실행하여 새 필터를 생성합니다.
---- /subsystem=undertow/configuration=filter/response-header=new-response-header:add(header-name=new-response-header,header-value="My Value") ----
필터 삭제
- 관리 CLI에 연결합니다.
다음 명령을 실행하여 필터를 삭제합니다.
---- /subsystem=undertow/configuration=filter/response-header=new-response-header:remove ----서버를 다시 로드하여 변경 사항을 적용합니다.
---- reload ----
15.5.1.1. buffer-request Handler 구성 링크 복사링크가 클립보드에 복사되었습니다!
클라이언트 또는 브라우저의 요청은 헤더와 본문의 두 부분으로 구성됩니다. 일반적인 상황에서 헤더와 본문은 지연 없이 JBoss EAP로 전송됩니다. 그러나 헤더가 먼저 전송된 후 몇 초 후에 본문이 전송되면 전체 요청을 보내는 데 지연이 발생합니다. 이 시나리오는 JBoss EAP에 스레드를 생성하여 전체 요청을 실행 대기 상태로 표시합니다.
헤더를 보내는 데 발생한 지연과 요청 본문은 buffer-request 처리기를 사용하여 수정할 수 있습니다. buffer-request 처리기는 작업자 스레드에 할당하기 전에 차단되지 않은 IO 스레드의 요청을 사용하려고 합니다. buffer-request 처리기가 추가되지 않으면 작업자 스레드에 대한 스레드 할당이 직접 수행됩니다. 그러나 buffer-request 처리기가 추가되면 처리기는 작업자 스레드에 할당하기 전에 IO 스레드를 사용하여 비차단 방식으로 버퍼링할 수 있는 데이터 양을 읽습니다.
다음 관리 CLI 명령을 사용하여 buffer-request 핸들러를 구성할 수 있습니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
프로세스
다음 명령을 실행하여
buffer-request핸들러를 추가합니다.---- /subsystem=undertow/configuration=filter/expression-filter=buf:add(expression="buffer-request(buffers=1)") ----다음을 실행하여 서버 및 호스트에 처리기를 연결합니다.
---- /subsystem=undertow/server=default-server/host=default-host/filter-ref=buf:add ----버퍼 요청 크기를 계산합니다.
`Total_size = num_buffers {MultiplicationSign} buffer_size`Where:-
Total_size는 요청이 작업자 스레드에 디스패치되기 전에 버퍼링될 데이터의 크기입니다. -
num_buffers는 처리기의buffers매개변수에 의해 설정된 버퍼 수입니다(이 예제에서는1로 설정됨). buffer_size는io하위 시스템에서 설정된 각 버퍼의 크기입니다(기본값은 요청당 16KB임).주의버퍼 요청이 매우 크거나 메모리가 부족할 수 있습니다.
-
서버를 다시 로드하여 변경 사항을 적용합니다.
---- reload ----
15.5.1.2. SameSite 특성 이해 링크 복사링크가 클립보드에 복사되었습니다!
SameSite 특성을 사용하여 동일한 사이트 내에서 쿠키의 접근성을 정의합니다. 이 속성은 브라우저가 교차 사이트 요청으로 쿠키를 보내지 않기 때문에 사이트 간 요청 위조 공격을 방지하는 데 도움이 됩니다.
undertow 하위 시스템에서 SameSite CookieHandler를 사용하여 쿠키의 SameSite 속성을 구성할 수 있습니다. 이 구성을 사용하면 애플리케이션 코드를 변경할 필요가 없습니다.
15.5.1.3. SameSiteCookieHandler 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에서는 SameSiteCookieHandler 의 매개변수를 자세히 설명합니다.
| 매개변수 이름 | presence | 설명 |
|---|---|---|
|
| 선택 사항 |
|
|
| 선택 사항 |
|
|
| 선택 사항 |
쿠키 이름에 대한 regex 패턴을 허용합니다. 지정하지 않으면 |
|
| 선택 사항 |
클라이언트 애플리케이션이
이 기본값을 사용하고
호환되지 않는 클라이언트 문제를 방지하기 위해 이 매개변수는 |
|
| 필수 |
교차 사이트 요청 위조 공격에 대한 보안을 개선하기 위해 일부 브라우저에서는 기본 |
SameSiteCookieHandler 는 쿠키 패턴과 일치하는 쿠키 또는 > 속성을 추가합니다. cookie -pattern 이 지정되지 않은 경우 모든 쿠키에 SameSite= <specified-modecookie-pattern 은 대소문자를 구분합니다.
SameSite 속성을 구성하기 전에 다음 사항을 고려하십시오.
-
애플리케이션에
SameSite속성이 필요한지 여부 및 해당 쿠키의 보안을 유지해야 하는지 여부를 확인하려면 애플리케이션을 검토하십시오. -
모든 쿠키에서
SameSite특성 모드를None으로 설정하면 애플리케이션이 공격에 더 취약해질 수 있습니다.
15.5.1.4. 표현식 필터를 사용하여 SameSiteCookieHandler 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 절차에서는 식 필터 를 사용하여 서버에서 SameSiteCookieHandler 를 구성하는 방법을 설명합니다.
사전 요구 사항
- 관리 CLI에 액세스할 수 있습니다.
- 서버 구성을 수정할 수 있는 권한이 있습니다.
프로세스
SameSiteCookieHandler:을 사용하여 새표현식 필터를 만듭니다.---- /subsystem=undertow/configuration=filter/expression-filter=addSameSiteLax:add(expression="path-prefix('/mypathprefix') -> samesite-cookie(Lax)") ----undertow웹 서버에서expression-filter를 활성화합니다.---- /subsystem=undertow/server=default-server/host=default-host/filter-ref=addSameSiteLax:add ----
15.5.1.5. 구성 파일을 사용하여 SameSiteCookieHandler 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 undertow-handlers.conf 파일을 추가하여 애플리케이션에서 SameSiteCookieHandler 를 구성하는 방법을 설명합니다.
사전 요구 사항
- 애플리케이션의 소스 코드에 액세스합니다.
- 애플리케이션 파일을 수정할 수 있는 권한
프로세스
-
WAR의 article-
INF 디렉터리에파일을 추가합니다.undertow-handlers.conf undertow-handlers.conf파일에서 특정SameSiteCookieHandler매개변수를 사용하여 다음 명령을 추가합니다.---- samesite-cookie(mode=<mode>) ----Replace `<mode>` with one of the valid values: `Strict`, `Lax`, or `None`.You can also configure other `SameSiteCookieHandler` parameters, such as `cookie-pattern`, `case-sensitive`, `enable-client-checker`, or `add-secure-for-none`.- 파일을 저장하고 필요한 경우 애플리케이션을 재배포합니다.