跨網站請求偽造(CSRF)是一種網站漏洞,其中使用有效使用者的瀏覽器來傳送惡意請求,可能會透過iFrame。 由於瀏覽器會根據網域傳送Cookie,因此如果使用者目前登入應用程式,可能會危及使用者的資料。
例如,假設您登入瀏覽器中的管理主控台。 您會收到包含連結的電子郵件訊息。 按一下連結,即可在瀏覽器中開啟新標籤。 您開啟的頁面包含隱藏的iFrame,會使用已驗證的AEM表單工作階段的Cookie向表單伺服器提出惡意請求。 由於「使用者管理」會收到有效的Cookie,因此會傳遞請求。
推薦者: 要求來源頁面的位址。 例如,site1.com上的網頁包含site2.com的連結。 按一下連結即可將要求張貼至site2.com。 此請求的參照網址為site1.com ,因為請求是從來源為site1.com的頁面發出的。
加入允許清單的URI: URI會識別表單伺服器上正在要求的資源,例如/adminui或/contentspace。 某些資源可能會允許請求從外部網站進入應用程式。 這些資源會視為已加入允許清單的URI。 表單伺服器絕不會從允許清單中的URI執行反向連結檢查。
Null查閱者: 當您開啟新的瀏覽器視窗或Tab鍵,然後輸入地址並按Enter鍵時,引用為空。 此請求是全新請求,並非源自上層網頁;因此,此請求沒有反向連結。 表單伺服器可從下列位置接收Null參照:
在SOAP和REST端點上允許Null參照。 在所有URI登入頁面(例如/adminui和/contentspace)及其對應的對應資源上也允許null參照。 例如, /contentspace的對應servlet是/contentspace/faces/jsp/login.jsp,這應該是null參照例外狀況。 只有在啟用Web應用程式的GET篩選時,才需要此例外。 您的應用程式可以指定是否允許null反向連結。 請參閱以下主題中的「防範跨網站請求偽造攻擊」: 強化AEM表單及安全性.
允許的反向連結例外狀況: Allowed Referer Exception是允許的反向連結清單的子清單,其中會封鎖要求。 允許的「參考例外」專屬於Web應用程式。 如果「允許的反向連結」的子集不允許呼叫特定的Web應用程式,您可以透過「允許的反向連結例外」將反向連結加入封鎖清單。 在web.xml檔案中為您的應用程式指定允許的Referer例外。 (請參閱說明和Tutorials頁面上的AEM表單強化和安全性中的「防止跨網站請求偽造攻擊」。)
AEM forms提供參照篩選功能,可協助防止CSRF攻擊。 以下為參照篩選的運作方式:
表單伺服器會檢查用於叫用的HTTP方法:
表單伺服器會檢查請求的URI是否已加入允許清單:
如果請求中有反向連結,伺服器會檢查其是否允許為反向連結。 如果允許,伺服器會檢查參照者例外狀況:
如果請求中沒有反向連結,則伺服器會檢查是否允許null反向連結。
當您執行Configuration Manager時,預設主機和IP位址或表單伺服器會新增到允許的反向連結清單中。 您可以在管理控制檯中編輯此清單。
在管理控制檯中,按一下「設定>使用者管理>設定>設定允許的反向連結URL」。「允許的反向連結」清單會顯示在頁面底部。
若要新增允許的反向連結:
0
(零)在方塊中,會啟用該伺服器上的所有連線埠。 您也可以輸入特定的連線埠號碼,以僅啟用該連線埠。若要從[允許的反向連結]清單中移除專案,請從清單中選取專案,然後按一下[刪除]。
如果「允許的參照者清單」是空的,則CSRF功能會停止運作且系統變得不安全。
變更「允許的反向連結」清單後,重新啟動AEM表單伺服器。