AEM as a Cloud Service:防止錯誤回應中揭露存放庫中繼資料
本文說明如何解決Adobe Experience Manager as a Cloud Service中的問題,該問題導致自訂錯誤處理常式設定在錯誤回應中公開存放庫中繼資料。 解決方案涉及更新錯誤處理常式,以確保錯誤頁面呈現為HTML。
說明 description
環境
Adobe Experience Manager as a Cloud Service (AEMaaCS)
症狀
由自訂錯誤處理常式處理的錯誤回應會公開儲存機制中繼資料,例如jcr:primaryType、jcr:createdBy和jcr:created,尤其是當錯誤處理常式包含維護錯誤頁面而未指定.html副檔名時。 當對舊版servlet路徑(例如: /bin/wcm/search/gql.servlet.json)的請求傳回 404錯誤 並由自訂錯誤處理常式JSP (例如/apps/sling/servlet/errorhandler/default.jsp)處理時,就會發生這種情況。
原因
如果錯誤處理常式包含沒有.html副檔名的維護錯誤頁面,回應會繼承原始要求的副檔名(例如.json),導致儲存區域中繼資料被序列化到回應內文中。 不會公開任何認證或敏感業務資料,但這會增加資訊公開的風險。
解決方法 resolution
請依照下列步驟解決問題:
-
開啟您的專案程式碼基底並找到自訂錯誤處理常式JSP檔案(通常位於
/apps/sling/servlet/errorhandler/default.jsp)。 -
識別包含維護錯誤頁面的行。 這些可能如下所示:
<jsp:include page="/content/<your-site>/maintenance/maintenance-error" /> -
更新每個include陳述式以明確指定
.html副檔名。 例如:<jsp:include page="/content/<your-site>/maintenance/maintenance-error.html" /> -
儲存您的變更,並使用標準部署程式將更新的程式碼部署至您的AEM as a Cloud Service環境。
-
存取受影響的端點(例如
/bin/wcm/search/gql.servlet.json)以驗證修正,並確認錯誤回應不再公開存放庫中繼資料,且會呈現為HTML錯誤頁面。