CSRF 공격을 방지하도록 Dispatcher 구성

AEM은 교차 사이트 요청 위조 공격을 방지하기 위한 프레임워크를 제공합니다. 이 프레임워크를 제대로 사용하려면 디스패처 구성을 다음과 같이 변경해야 합니다.

노트

기존 구성을 기반으로 아래 예에서 규칙 번호를 업데이트해야 합니다. 디스패처에서는 마지막 일치 규칙을 사용하여 허용 또는 거부를 부여하므로 규칙을 기존 목록 맨 아래에 배치하십시오.

  1. author-farm.any 및 publish-farm.any의 /clientheaders 섹션에서 목록 아래쪽에 다음 항목을 추가합니다.
    CSRF-Token
  2. author-farm.anypublish-farm.any 또는 publish-filters.any 파일의 /filters 섹션에서 다음 줄을 추가하여 디스패처를 통한 /libs/granite/csrf/token.json에 대한 요청을 허용합니다.
    /0999 { /type "allow" /glob " * /libs/granite/csrf/token.json*" }
  3. publish-farm.any/cache /rules 섹션 아래에서 디스패처가 token.json 파일을 캐싱하지 못하도록 하는 규칙을 추가합니다. 작성자는 일반적으로 캐싱을 무시하므로 author-farm.any에 규칙을 추가할 필요가 없습니다.
    /0999 { /glob "/libs/granite/csrf/token.json?lang=ko" /type "deny" }

구성이 작동하는지 확인하려면 DEBUG 모드에서 dispatcher.log를 통해 token.json 파일이 캐시되고 있지 않고 필터로 차단되고 있는지 확인합니다. 다음과 유사한 메시지가 표시됩니다.
... checking [/libs/granite/csrf/token.json]
... request URL not in cache rules: /libs/granite/csrf/token.json
... cache-action for [/libs/granite/csrf/token.json]: NONE

또한 apache access_log에서 요청이 성공 중인지 확인할 수 있습니다. "/libs/granite/csrf/token.json에 대한 요청은 HTTP 200 상태 코드를 반환해야 합니다.

이 페이지에서는

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free