設定 Dispatcher 以防止 CSRF 攻擊

AEM提供框架,以防止跨網站請求偽造攻擊。 為了正確使用此架構,您必須對Dispatcher設定進行下列變更:

注意

請務必根據您現有的設定,更新下列範例中的規則編號。 請記住,Dispatcher會使用最後一個相符的規則來授與允許或拒絕,請將規則放在現有清單的底部附近。

  1. 在author-farm.any和publish-farm.any的/clientheaders區段中,將下列項目新增至清單底部:
    CSRF-Token
  2. author-farm.anypublish-farm.anypublish-filters.any檔案的/filters區段中,新增下列行以允許透過Dispatcher提出/libs/granite/csrf/token.json請求。
    /0999 { /type "allow" /glob " * /libs/granite/csrf/token.json*" }
  3. 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狀態代碼。

本頁內容