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