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