CSRF 공격을 방지하도록 Adobe Experience Manager Dispatcher 구성 configuring-dispatcher-to-prevent-csrf-attacks
AEM(Adobe Experience Manager)은 크로스 사이트 요청 위조 공격을 방지하는 프레임워크를 제공합니다. 이 프레임워크를 적절하게 사용하려면 Dispatcher 구성을 다음과 같이 변경해야 합니다.
-
author-farm.any
및publish-farm.any
의/clientheaders
섹션에서 목록 맨 아래에 다음 항목을 추가합니다.CSRF-Token
-
author-farm.any
및publish-farm.any
또는publish-filters.any
파일의 /filters 섹션에 다음 행을 추가하여 Dispatcher에서/libs/granite/csrf/token.json
에 대한 요청을 허용합니다./0999 { /type "allow" /glob " * /libs/granite/csrf/token.json*" }
-
publish-farm.any
의/cache /rules
섹션 아래에서 Dispatcher가token.json
파일을 캐시하지 못하도록 차단하는 규칙을 추가합니다. 일반적으로 작성자는 캐싱을 무시하므로author-farm.any
에 규칙을 추가할 필요가 없습니다./0999 { /glob "/libs/granite/csrf/token.json" /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 상태 코드를 반환해야 합니다.