瞭解各種安全性強化設定,以增強在公司內部網路中執行的JEE上的AEM Forms安全性。
本文會說明保護伺服器安全的建議與最佳實務,這些伺服器會在JEE上執行AEM Forms。 這不是針對您的作業系統和應用程式伺服器的完整主機強化檔案。 本文改為說明各種安全性強化設定,您應實作這些設定以增強在公司內部網路中執行的JEE上的AEM Forms安全性。 不過,為了確保JEE應用程式伺服器上的AEM Forms保持安全,您也應該實作安全性監控、偵測和回應程式。
本文說明在下列階段中,安裝及組態生命週期期間應套用的強化技術:
JEE上的AEM Forms可高度自訂,可在許多不同的環境中運作。 部分建議可能不符合您組織的需求。
在JEE上安裝AEM Forms之前,您可以將安全性解決方案套用至網路層和作業系統。 本節說明一些問題,並提出減少這些區域安全性弱點的建議。
在UNIX和Linux上的安裝和設定
您不應使用根殼層在JEE上安裝或設定AEM Forms。 依預設,檔案會安裝在/opt目錄下,而執行安裝的使用者需要/opt下的所有檔案許可權。 或者,也可以在個別使用者的/user目錄下執行安裝,該目錄下使用者已經擁有所有檔案許可權。
在Windows上的安裝和設定
如果您在JBoss上的JEE上使用turnkey方法安裝AEM Forms或安裝PDF Generator,您應該以管理員身分在Windows上執行安裝。 此外,在具有原生應用程式支援的Windows上安裝PDF Generator時,您必須以安裝Microsoft Office的同一Windows使用者身分執行安裝。 如需有關安裝許可權的詳細資訊,請參閱在JEE上安裝和部署AEM Forms檔案,以瞭解您的應用程式伺服器。
網路安全漏洞是任何面對網際網路或面對內部網路的應用程式伺服器所面臨的首要威脅之一。 本節說明針對這些弱點強化網路上主機的程式。 它可處理網路細分、傳輸控制通訊協定/網際網路通訊協定(TCP/IP)棧疊強化,以及使用防火牆保護主機等問題。
下表說明減少網路安全漏洞的常見程式。
問題 |
說明 |
---|---|
非軍事區域(DMZ) |
在非軍事區域(DMZ)中部署Forms伺服器。 區段應至少存在於兩個層級,而且用於在JEE上執行AEM Forms的應用程式伺服器應置於內部防火牆之後。 將外部網路與包含Web伺服器的DMZ分開,而後者則必須與內部網路分開。 使用防火牆來實作分隔層。 將流經每個網路層的流量分類並加以控制,確保只允許絕對最低必要資料。 |
私人IP位址 |
在AEM Forms應用程式伺服器上使用網路位址轉譯(NAT)搭配RFC 1918私人IP位址。 指派私人IP位址(10.0.0.0/8、172.16.0.0/12和192.168.0.0/16),讓攻擊者更難以透過網際網路路由往來於NAT的內部主機的流量。 |
防火牆 |
請使用下列條件來選取防火牆解決方案:
|
資料庫連線埠 |
請勿使用資料庫的預設監聽連線埠(MySQL - 3306、Oracle- 1521、MS SQL - 1433)。 如需有關變更資料庫連線埠的資訊,請參閱您的資料庫檔案。 使用不同的資料庫連線埠會影響JEE設定的整體AEM Forms。 如果您變更預設連線埠,則必須在設定的其他區域進行對應的修改,例如JEE上AEM Forms的資料來源。 如需有關在JEE上設定AEM Forms資料來源的資訊,請參閱在JEE上安裝和升級AEM Forms,或在JEE上升級至您的應用程式伺服器的AEM Forms ,網址為 AEM Forms使用手冊. |
下表說明將作業系統中發現的安全性弱點降至最低的一些可能方法。
問題 |
說明 |
---|---|
安全性修補程式 |
如果未及時套用廠商安全性修補程式和升級,未經授權的使用者可能會取得應用程式伺服器的存取權,此風險會增加。 請先測試安全性修補程式,再將其套用至生產伺服器。 此外,建立原則和程式,以定期檢查並安裝修補程式。 |
病毒防護軟體 |
病毒掃描程式可透過掃描簽名或監視異常行為來識別受感染的檔案。 掃描器會將病毒簽章儲存在檔案中,檔案通常儲存在本機硬碟上。 因為經常會發現新的病毒,所以您應該經常更新這個檔案,讓病毒掃描程式識別所有目前的病毒。 |
網路時間通訊協定(NTP) |
為了進行鑑證分析,請務必在表單伺服器上保持準確的時間。 使用NTP同步所有直接連線到網際網路的系統上的時間。 |
如需作業系統的其他安全性資訊,請參閱 作業系統安全性資訊.
本節說明在AEM Forms安裝程式期間可用來減少安全漏洞的技術。 在某些情況下,這些技術會使用安裝流程中的選項。 下表說明這些技術。
問題 |
說明 |
---|---|
權限 |
使用安裝軟體所需的最少許可權。 使用不在Administrators群組中的帳戶登入電腦。 在Windows上,您可以使用「執行身分」命令,以系統管理使用者的身分,在JEE安裝程式上執行AEM Forms 。 在UNIX和Linux系統上,使用命令,例如 |
軟體來源 |
請勿在JEE上從不受信任的來源下載或執行AEM Forms。 惡意程式可能包含程式碼,以數種方式違反安全性,包括資料竊取、修改和刪除,以及拒絕服務。 從AdobeDVD或僅從信任的來源在JEE上安裝AEM Forms。 |
磁碟分割 |
將AEM Forms放在JEE的專用磁碟分割上。 磁碟分段是將伺服器上的特定資料保留在個別實體磁碟上的程式,以提高安全性。 以這種方式排列資料可降低目錄周遊攻擊的風險。 計畫建立獨立於系統分割區的分割區,您可以在其中在JEE內容目錄上安裝AEM Forms。 (在Windows上,系統分割區包含system32目錄或開機分割區。) |
元件 |
評估現有的服務,並停用或解除安裝任何不需要的服務。 請勿安裝不必要的元件和服務。 應用程式伺服器的預設安裝可能包含您不需要使用的服務。 您應在部署前停用所有不必要的服務,將攻擊的進入點減至最少。 例如,在JBoss上,您可以在META-INF/jboss-service.xml描述項檔案中註解不必要的服務。 |
跨網域原則檔案 |
存在 |
作業系統安全性設定 |
如果您需要在Solaris平台上使用192位元或256位元的XML加密,請務必安裝 |
在JEE上成功安裝AEM Forms後,請務必從安全性角度定期維護環境。
下節將詳細描述建議用來保護已部署Forms伺服器的各種工作。
下列建議的設定適用於管理Web應用程式以外的JEE伺服器上的AEM Forms。 為降低伺服器的安全風險,請在JEE上安裝AEM Forms後立即套用這些設定。
安全性修補程式
如果未及時套用廠商安全性修補程式和升級,未經授權的使用者可能會取得應用程式伺服器的存取權,此風險會增加。 請先測試安全性修補程式,再將其套用至生產伺服器,以確保應用程式的相容性和可用性。 此外,建立原則和程式,以定期檢查並安裝修補程式。 JEE上的AEM Forms更新位在企業產品下載網站上。
服務帳戶(僅適用於Windows上的JBoss整套作業)
JEE上的AEM Forms預設會使用LocalSystem帳戶安裝服務。 內建的LocalSystem使用者帳戶具有高度協助工具;它屬於Administrators群組的一部分。 如果工作者處理序識別以LocalSystem使用者帳戶執行,則該工作者處理序具有整個系統的完整存取權。
若要使用特定的非管理帳戶,執行已部署AEM Forms on JEE的應用程式伺服器,請遵循下列指示:
在Microsoft管理主控台(MMC)中,建立Forms伺服器服務的本機使用者,以以下身分登入:
您無法變更PDF Generator的這個設定。
選取 開始 > 設定 > 管理工具 > 服務.
在JEE上連按兩下AEM Forms的JBoss並停止服務。
在 登入 索引標籤,選取 此帳戶,瀏覽您建立的使用者帳戶,然後輸入帳戶的密碼。
在MMC中,開啟 本機安全性設定 並選取 本機原則 > 使用者許可權指派.
將下列許可權指派給Forms伺服器執行所在的使用者帳戶:
為新的使用者帳戶提供修改下列目錄的許可權:
[JBoss root]/server/[type]/svcnative/DocumentStorage
[AEM-Forms-installation-location]\crx-repository
為新的使用者帳戶提供下列目錄的寫入許可權:
JBoss Application Server的預設安裝位置:
啟動應用程式伺服器。
停用Configuration Manager啟動程式servlet
Configuration Manager會使用部署在應用程式伺服器上的servlet,執行JEE資料庫上AEM Forms的啟動程式。 由於Configuration Manager在設定完成之前會存取此servlet,因此未保護授權使用者的存取權,而且在您成功使用Configuration Manager在JEE上設定AEM Forms後,應該停用它。
解壓縮adobe-livecycle-[appserver].ear檔案。
開啟META-INF/application.xml檔案。
搜尋adobe-bootstrapper.war區段:
<!-- bootstrapper start -->
<module id="WebApp_adobe_bootstrapper">
<web>
<web-uri>adobe-bootstrapper.war</web-uri>
<context-root>/adobe-bootstrapper</context-root>
</web>
</module>
<module id="WebApp_adobe_lcm_bootstrapper_redirector">
<web>
<web-uri>adobe-lcm-bootstrapper-redirector.war</web-uri>
<context-root>/adobe-lcm-bootstrapper</context-root>
</web>
</module>
<!-- bootstrapper end-->
停止AEM Forms伺服器。
註解adobe-bootstrapper.war和adobe-lcm-bootstrapper-redirectory。 war模組,如下所示:
<!-- bootstrapper start -->
<!--
<module id="WebApp_adobe_bootstrapper">
<web>
<web-uri>adobe-bootstrapper.war</web-uri>
<context-root>/adobe-bootstrapper</context-root>
</web>
</module>
<module id="WebApp_adobe_lcm_bootstrapper_redirector">
<web>
<web-uri>adobe-lcm-bootstrapper-redirector.war</web-uri>
<context-root>/adobe-lcm-bootstrapper</context-root>
</web>
</module>
-->
<!-- bootstrapper end-->
儲存並關閉META-INF/application.xml檔案。
壓縮EAR檔案,並將其重新部署到應用程式伺服器。
啟動AEM Forms伺服器。
在瀏覽器中輸入下列URL以測試變更,確保變更不再運作。
https://<localhost>:<port>/adobe-bootstrapper/bootstrap
鎖定對信任存放區的遠端存取
Configuration Manager可讓您將Acrobat Reader DC擴充功能認證上傳至JEE信任存放區上的AEM Forms。 這表示透過遠端通訊協定(SOAP和EJB)存取「信任存放區認證服務」已預設啟用。 使用Configuration Manager上傳許可權認證後,或決定稍後使用Administration Console管理認證後,不再需要此存取權。
您可以依照一節中的步驟,停用所有信任存放區服務的遠端存取 停用非必要的服務遠端存取.
停用所有非必要的匿名存取
有些Forms Server服務具有可由匿名呼叫者叫用的操作。 如果不需要匿名存取這些服務,請依照中的步驟加以停用 停用對服務的非必要匿名存取.
安裝JEE上的AEM Forms時,會為使用者「超級管理員/登入ID管理員」設定單一預設使用者帳戶,預設密碼為 密碼. 您應立即使用Configuration Manager變更此密碼。
在網頁瀏覽器中輸入下列URL:
https://[host name]:[port]/adminui
預設連線埠號碼為下列其中一項:
JBoss: 8080
WebLogic伺服器: 7001
WebSphere: 9080。
在 使用者名稱 欄位,型別 administrator
而且,在 密碼 欄位,型別 password
.
按一下 設定 > User Management > 使用者和群組.
型別 administrator
在 尋找 欄位,然後按一下 尋找.
按一下 超級管理員 從使用者清單中。
按一下 變更密碼 在編輯使用者頁面上。
指定新密碼,然後按一下 儲存.
此外,建議透過執行以下步驟來變更CRX管理員的預設密碼:
https://[server]:[port]/lc/libs/granite/security/content/useradmin.html
使用預設的使用者名稱/密碼。Web服務定義語言(WSDL)產生應該只針對開發環境啟用,在這些環境中,開發人員會使用WSDL產生來建置他們的使用者端應用程式。 您可以選擇在生產環境中停用WSDL產生,以避免公開服務的內部詳細資料。
在網頁瀏覽器中輸入下列URL:
https://[host name]:[port]/adminui
選取 設定>核心系統設定>設定.
取消選取 啟用WSDL,然後選取 確定.
下表說明安裝JEE應用程式上的AEM Forms後保護應用程式伺服器安全的一些技術。
問題 |
說明 |
---|---|
應用程式伺服器管理主控台 |
在應用程式伺服器上的JEE上安裝、設定和部署AEM Forms後,您應該停用對應用程式伺服器管理主控台的存取權。 如需詳細資訊,請參閱您的應用程式伺服器檔案。 |
應用程式伺服器Cookie設定 |
應用程式Cookie由應用程式伺服器控制。 部署應用程式時,應用程式伺服器管理員可指定全伺服器或應用程式特定的Cookie偏好設定。 依預設,伺服器設定會偏好。 應用程式伺服器產生的所有工作階段Cookie應包含 您可以限制僅使用HTTPS傳送Cookie。 因此,它們不會經由HTTP以未加密的方式傳送。 應用程式伺服器管理員應在全域為伺服器啟用安全Cookie。 例如,使用JBoss Application Server時,您可以將聯結器元素修改為 如需Cookie設定的詳細資訊,請參閱您的應用程式伺服器檔案。 |
目錄瀏覽 |
當有人請求不存在的頁面或請求導向器名稱(請求字串以正斜線(/)結尾)時,應用程式伺服器不應傳回該目錄的內容。 若要避免此問題,您可以停用應用程式伺服器上的目錄瀏覽。 您應該針對管理控制檯應用程式以及伺服器上執行的其他應用程式執行此動作。 針對JBoss,請設定 <servlet> <servlet-name>預設</servlet-name> <servlet-class> org.apache.catalina.servlets.DefaultServlet </servlet-class> <init-param> <param-name>清單</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> 針對WebSphere,設定 對於WebLogic,請將weblogic.xml檔案中的index-directories屬性設定為 <container-descriptor> <index-directory-enabled>false </index-directory-enabled> </container-descriptor> |
保護資料庫安全時,您應該實施資料庫供應商所述的措施。 您應該配置資料庫使用者,使其具有AEM Forms on JEE授權使用的最低必要資料庫許可權。 例如,請勿使用具有資料庫管理員許可權的帳戶。
在Oracle時,您使用的資料庫帳戶只需要CONNECT、RESOURCE和CREATE VIEW許可權。 如需其他資料庫的類似需求,請參閱 準備在JEE (單一伺服器)上安裝AEM Forms.
修改 [JBOSS_HOME]要新增的\standalone\configuration\lc_{datasource.xml} integratedSecurity=true
連線URL,如以下範例所示:
jdbc:sqlserver://<serverhost>:<port>;databaseName=<dbname>;integratedSecurity=true
將sqljdbc_auth.dll檔案新增至執行應用程式伺服器之電腦上的Windows系統路徑。 sqljdbc_auth.dll檔案位於Microsoft SQL JDBC 6.2.1.0驅動程式安裝中。
將本機系統登入身分的JBoss Windows服務(JEE上AEM Forms的JBoss)屬性修改為具有AEM Forms資料庫和最低許可權集的登入帳戶。 如果您是從命令列執行JBoss,而不是以Windows服務的形式執行,則不需要執行此步驟。
設定SQL Server的安全性,從 混合 模式至 僅限Windows驗證.
在網頁瀏覽器的URL行中輸入下列URL,啟動「WebLogic伺服器管理主控台」:
https://[host name]:7001/console
在「變更中心」下,按一下 鎖定和編輯.
在「領域結構」下,按一下 [base_domain] > 服務 > JDBC > 資料來源 然後在右窗格中,按一下 IDP_DS.
在下一個畫面,在 設定 索引標籤,按一下 連線集區 標籤,然後在 屬性 方塊,輸入 integratedSecurity=true
.
在「領域結構」下,按一下 [base_domain] > 服務 > JDBC > 資料來源 然後在右窗格中,按一下 RM_DS.
在下一個畫面,在 設定 索引標籤,按一下 連線集區 標籤,然後在 屬性 方塊,輸入 integratedSecurity=true
.
將sqljdbc_auth.dll檔案新增至執行應用程式伺服器之電腦上的Windows系統路徑。 sqljdbc_auth.dll檔案位於Microsoft SQL JDBC 6.2.1.0驅動程式安裝中。
設定SQL Server的安全性,從 混合 模式至 僅限Windows驗證.
在WebSphere上,只有在使用外部SQL Server JDBC驅動程式,而非內嵌於WebSphere的SQL Server JDBC驅動程式時,才能設定整合式安全性。
integratedSecurity
而且,在 值 方塊,輸入 true
.integratedSecurity
而且,在 值 方塊,輸入 true
.AEM Forms資料庫結構描述包含有關系統設定和業務流程的敏感資訊,應隱藏在防火牆之後。 系統應將資料庫視為與Forms伺服器位於相同的信任界限內。 為了防止資訊洩漏及商業資料遭竊,資料庫必須由資料庫管理員(DBA)設定為僅允許授權管理員存取。
作為新增的預防措施,您應該考慮使用資料庫廠商專用的工具,對包含以下資料的表格中的欄進行加密:
如需有關廠商特定工具的資訊,請參閱 資料庫安全性資訊.
AEM Forms on JEE通常會使用輕量型目錄存取協定(LDAP)目錄作為企業使用者和群組資訊的來源,以及執行密碼驗證的方法。 您應該確保您的LDAP目錄已設定為使用Secure Socket Layer (SSL),而AEM Forms on JEE已設定為使用其SSL連線埠存取您的LDAP目錄。
使用LDAP的常見攻擊是指攻擊者故意多次無法驗證身分。 這會強制LDAP目錄伺服器鎖定所有LDAP相關服務的使用者。
您可以設定當使用者一再無法向AEM Forms驗證時,AEM Forms實施的失敗嘗試和後續鎖定時間。 在「管理主控台」中,選擇低值。 選取失敗嘗試次數時,請務必瞭解,在嘗試了所有失敗嘗試後,AEM Forms會在LDAP目錄伺服器嘗試之前鎖定使用者。
正確且安全地使用應用程式稽核和記錄,有助於確保儘快追蹤和偵測安全性和其他異常事件。 在應用程式中有效使用稽核和記錄功能包括追蹤成功和失敗的登入等專案,以及建立或刪除關鍵記錄等重要應用程式事件。
您可以使用稽核來偵測許多型別的攻擊,包括:
此表格說明可用來減少伺服器弱點的稽核與記錄技術。
問題 |
說明 |
---|---|
記錄檔ACL |
在JEE記錄檔存取控制清單(ACL)上設定適當的AEM Forms 。 設定適當的認證有助於防止攻擊者刪除檔案。 記錄檔目錄的安全性許可權應該是Full Control for Administrators and SYSTEM groups。 AEM Forms使用者帳戶應僅具備讀取和寫入許可權。 |
記錄檔備援 |
如果資源允許,請使用Syslog、Tivoli、Microsoft Operations Manager (MOM)伺服器或其他機制,即時傳送記錄至攻擊者無法存取的其他伺服器(僅限寫入)。 以這種方式保護記錄檔有助於防止竄改。 此外,將記錄儲存在中央存放庫有助於關聯和監控(例如,如果有多台表單伺服器在使用中,且在多台電腦上發生密碼猜測攻擊,而每台電腦都要求密碼)。 |
您可以讓非管理員使用者使用PDF Generator。 通常只有具有管理許可權的使用者才能使用PDF Generator。 執行以下步驟,讓非管理員使用者執行PDF Generator:
建立環境變數名稱PDFG_NON_ADMIN_ENABLED。
將變數的值設為TRUE。
重新啟動AEM Forms執行個體。
在JEE上成功安裝AEM Forms後,請務必定期維護環境的安全性。 本節說明維護JEE生產伺服器上AEM Forms安全性的建議工作。
A 反向Proxy 可用來確保外部和內部使用者均可使用JEE網頁應用程式上AEM Forms的一組URL。 此設定比允許使用者直接連線至AEM Forms on JEE執行所在的應用程式伺服器更安全。 反向Proxy會針對在JEE上執行AEM Forms的應用程式伺服器執行所有HTTP要求。 使用者只有反向Proxy的網路存取權,而且只能嘗試反向Proxy支援的URL連線。
JEE根URL上的AEM Forms ,用於反向Proxy伺服器
以下是JEE網頁應用程式上每個AEM Forms的應用程式根URL。 您應該只設定反向Proxy,以公開URL供您提供給使用者的網頁應用程式功能使用。
某些URL會醒目提示為面對使用者的網頁應用程式。 您應該避免公開Configuration Manager的其他URL,以便透過反向Proxy存取外部使用者。
根URL |
用途及/或相關的網頁應用程式 |
Web式介面 |
一般使用者存取權 |
---|---|---|---|
/ReaderExtensions/* |
Acrobat Reader DC擴充功能一般使用者Web應用程式,用於將使用許可權套用至PDF檔案 |
是 |
是 |
/edc/* |
Rights Management一般使用者Web應用程式 |
是 |
是 |
/edcws/* |
Rights Management的Web服務URL |
否 |
是 |
/pdfgui/* |
PDF Generator管理Web應用程式 |
是 |
是 |
/workspace/* |
Workspace一般使用者Web應用程式 |
是 |
是 |
/workspace-server/* |
Workspace使用者端應用程式所需的Workspace servlet和資料服務 |
是 |
是 |
/adobe-bootstrapper/* |
用於在JEE存放庫上啟動AEM Forms的Servlet |
否 |
否 |
/soap/* |
Forms Server Web服務的資訊頁 |
否 |
否 |
/soap/services/* |
所有Forms Server服務的Web服務URL |
否 |
否 |
/edc/admin/* |
Rights Management管理Web應用程式 |
是 |
否 |
/adminui/* |
管理主控台首頁 |
是 |
否 |
/TruststoreComponent/ secure/* |
信任存放區管理管理頁面 |
是 |
否 |
/FormsIVS/* |
Forms IVS應用程式以進行表單轉譯的測試及偵錯 |
是 |
否 |
/OutputIVS/* |
用於測試和偵錯輸出服務的輸出IVS應用程式 |
是 |
否 |
/rmws/* |
用於Rights Management的重設URL |
否 |
是 |
/OutputAdmin/* |
輸出管理頁面 |
是 |
否 |
/FormServer/* |
Forms網頁應用程式檔案 |
是 |
否 |
/FormServer/GetImage Servlet |
用於在HTML轉換期間擷取JavaScript |
否 |
否 |
/FormServerAdmin/* |
Forms管理頁面 |
是 |
否 |
/repository/* |
WebDAV (偵錯)存取的URL |
是 |
否 |
/AACComponent/* |
應用程式和服務使用者介面 |
是 |
否 |
/WorkspaceAdmin/* |
工作區管理頁面 |
是 |
否 |
/rest/* |
Rest支援頁面 |
是 |
否 |
/CoreSystemConfig/* |
JEE核心組態設定頁面上的AEM Forms |
是 |
否 |
/um/ |
User Management驗證 |
否 |
是 |
/um/* |
使用者管理管理介面 |
是 |
否 |
/DocumentManager/* |
透過已啟用HTTP檔案的SOAP傳輸或EJB傳輸,在存取遠端端點、SOAP WSDL端點及Java SDK時,上傳及下載要處理的檔案。 |
是 |
是 |
跨網站請求偽造(CSRF)攻擊會利用網站對使用者的信任,傳輸未經授權且使用者未預期的命令。 將連結或指令碼包含在網頁中,或將URL包含在電子郵件訊息中,以存取使用者已驗證的其他網站,藉此設定攻擊。
例如,您可能在瀏覽其他網站的同時登入Administration Console。 其中一個網頁可能包含帶有的HTML影像標籤 src
鎖定受害者網站上伺服器端指令碼的屬性。 使用網頁瀏覽器提供的Cookie型工作階段驗證機制,攻擊網站可以傳送惡意要求給這個受到傷害的伺服器端指令碼,偽裝成合法使用者。 如需更多範例,請參閱 https://owasp.org/www-community/attacks/csrf#Examples.
CSRF的通用特性如下:
JEE上的AEM Forms使用反向連結篩選功能來封鎖CSRF攻擊。 本節會使用下列辭彙來說明反向連結篩選機制:
「反向連結篩選」程式的說明如下:
Forms伺服器會檢查用於叫用的HTTP方法:
Forms伺服器會檢查要求的URI是否存在於允許清單中:
如果請求中有Referrer,則伺服器會檢查其是否為Allowed Referrer。 如果允許,伺服器會檢查反向連結例外狀況:
如果請求中沒有反向連結,則伺服器會檢查是否允許Null反向連結:
JEE上的AEM Forms提供反向連結篩選條件,用以指定可存取您伺服器資源的反向連結。 依預設,反向連結篩選器不會篩選使用安全HTTP方法(例如GET)的請求,除非 CSRF_CHECK_GETS 設為true。 如果「允許的反向連結」專案的連線埠號碼設為0,則無論連線埠號碼為何,JEE上的AEM Forms都將允許從該主機傳送帶有「反向連結」的所有要求。 如果未指定連線埠號碼,則只允許來自預設連線埠80 (HTTP)或連線埠443 (HTTPS)的請求。 如果刪除「允許的反向連結」清單中的所有專案,則會停用反向連結篩選。
第一次安裝Document Services時,「允許的反向連結」清單會以安裝Document Services的伺服器位址更新。 伺服器的專案包括伺服器名稱、IPv4位址、啟用IPv6時的IPv6位址、回送位址以及localhost專案。 主機作業系統會傳回新增至「允許的反向連結」清單的名稱。 例如,IP位址為10.40.54.187的伺服器將包含下列專案: https://server-name:0, https://10.40.54.187:0, https://127.0.0.1:0, http://localhost:0
. 對於主機作業系統傳回的任何未限定名稱(沒有IPv4位址、IPv6位址或限定網域名稱的名稱),允許清單不會更新。 修改允許的反向連結清單以符合您的業務環境。 請勿使用預設的「允許的反向連結」清單,在生產環境中部署Forms伺服器。 修改任何「允許的反向連結」、「反向連結例外」或URI後,請確定您重新啟動伺服器,變更才會生效。
管理允許的反向連結清單
您可以從「管理主控台」的「使用者管理介面」管理「允許的反向連結」清單。 「使用者管理介面」提供您建立、編輯或刪除清單的功能。 請參閱* 防止CSRF攻擊*部分,屬於 管理說明 以取得使用「允許的反向連結」清單的詳細資訊。
管理允許的反向連結例外和允許的URI清單
JEE上的AEM Forms提供API來管理允許的反向連結例外清單和允許的URI清單。 您可以使用這些API來擷取、建立、編輯或刪除清單。 以下是可用API的清單:
如需API的詳細資訊,請參閱* AEM Forms on JEE API參考資料* 。
使用 LC_GLOBAL_ALLOWED_REFERER_EXCEPTION 全域層次的「允許的反向連結例外」清單,也就是定義適用於所有應用程式的例外。 此清單僅包含具有絕對路徑的URI (例如 /index.html
)或相對路徑(例如, /sample/
)。 您也可以將規則運算式附加至相對URI的結尾,例如, /sample/(.)*
.
此 LC_GLOBAL_ALLOWED_REFERER_EXCEPTION 清單ID在 UMConstants
的類別 com.adobe.idp.um.api
名稱空間,可在 adobe-usermanager-client.jar
. 您可以使用AEM Forms API來建立、修改或編輯此清單。 例如,若要建立「允許的全域反向連結例外」清單,請使用:
addAllowedRefererExceptions(UMConstants.LC_GLOBAL_ALLOWED_REFERER_EXCEPTION, Arrays.asList("/index.html", "/sample/(.)*"))
使用 CSRF_ALLOWED_REFERER_EXCEPTIONS 應用程式特定例外清單。
停用反向連結篩選
如果反向連結篩選完全封鎖對Forms伺服器的存取,且您無法編輯允許的反向連結清單,您可以更新伺服器啟動指令碼並停用反向連結篩選。
包含 -Dlc.um.csrffilter.disabled=true
啟動指令碼中的JAVA引數並重新啟動伺服器。 請務必在適當重新設定「允許的反向連結」清單後,刪除JAVA引數。
自訂WAR檔案的反向連結篩選
您可能已建立自訂WAR檔案,以搭配AEM Forms on JEE使用來滿足您的業務需求。 若要為自訂WAR檔案啟用反向連結篩選,請包括 adobe-usermanager-client.jar 在WAR的類別路徑中,並在* web.xml*檔案中包含一個篩選專案,其中包含下列引數:
CSRF_CHECK_GETS 控制GET請求的反向連結檢查。 如果未定義此引數,預設值會設為false。 僅當您要篩選GET請求時才包含此引數。
CSRF_ALLOWED_REFERER_EXCEPTIONS 是「允許的反向連結例外」清單的ID。 反向連結篩選器可防止來自清單ID所識別清單中反向連結的請求,從Forms伺服器上叫用任何資源。
CSRF_ALLOWED_URIS_LIST_NAME 是「允許的URI」清單的ID。 無論請求中的Referrer標頭值為何, Referrer Filter都不會封鎖針對清單ID所識別清單中任何資源的請求。
CSRF_ALLOW_NULL_REFERER 控制反向連結為Null或不存在時的反向連結篩選行為。 如果未定義此引數,預設值會設為false。 只有在您想要允許Null反向連結時才包含此引數。 允許空反向連結可能會允許某些型別的跨網站請求偽造攻擊。
CSRF_NULL_REFERER_EXCEPTIONS 是URI清單,當反向連結為Null時,不會對其執行反向連結檢查。 此引數僅在 CSRF_ALLOW_NULL_REFERER 設為false。 請使用逗號分隔清單中的多個URI。
以下是 web.xml 的檔案 範例 WAR檔案:
<filter>
<filter-name> filter-name </filter-name>
<filter-class> com.adobe.idp.um.auth.filter.RemoteCSRFFilter </filter-class>
<!-- default is false -->
<init-param>
<param-name> CSRF_ALLOW_NULL_REFERER </param-name>
<param-value> false </param-value>
</init-param>
<!-- default is false -->
<init-param>
<param-name> CSRF_CHECK_GETS </param-name>
<param-value> true </param-value>
</init-param>
<!-- Optional -->
<init-param>
<param-name> CSRF_NULL_REFERER_EXCEPTIONS </param-name>
<param-value> /SAMPLE/login, /SAMPLE/logout </param-value>
</init-param>
<!-- Optional -->
<init-param>
<param-name> CSRF_ALLOWED_REFERER_EXCEPTIONS </param-name>
<param-value> SAMPLE_ALLOWED_REF_EXP_ID </param-value>
</init-param>
<!-- Optional -->
<init-param>
<param-name> CSRF_ALLOWED_URIS_LIST_NAME </param-name>
<param-value> SAMPLE_ALLOWED_URI_LIST_ID </param-value>
</init-param>
</filter>
........
<filter-mapping>
<filter-name> filter-name </filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
疑難排解
如果CSRF篩選器封鎖合法的伺服器要求,請嘗試下列其中一個動作:
本節說明AEM Forms on JEE所需的通訊協定和連線埠,並提供在安全網路設定中部署AEM Forms on JEE的建議。
如上節所述,當您設定安全的網路架構時,JEE上的AEM Forms與企業網路中的其他系統之間的互動需要下列網路通訊協定。
通訊協定 |
使用 |
---|---|
HTTP |
|
SOAP |
|
RMI |
在Enterprise JavaBeans (EJB)模式中使用時,在JEE SDK呼叫上使用AEM Forms |
IMAP / POP3 |
|
UNC檔案IO |
AEM Forms on JEE監視watched資料夾以輸入服務(watched資料夾端點) |
LDAP |
|
JDBC |
|
WebDAV |
啟用任何WebDAV使用者端在JEE設計階段存放庫(表單、片段等)上遠端瀏覽AEM Forms |
AMF |
AdobeFlash應用程式,其中JEE伺服器服務上的AEM Forms設定了遠端端點 |
JMX |
JEE上的AEM Forms公開MBean,以使用JMX進行監視 |
本節說明各種支援的應用程式伺服器型別的預設連線埠(和替代組態範圍)。 這些連線埠必須在內部防火牆上啟用或停用,具體取決於您要允許使用者端連線到在JEE上執行AEM Forms的應用程式伺服器的網路功能。
依預設,伺服器會在adobe.com名稱空間下公開數個JMX MBean。 只會公開對伺服器健康狀態監視有用的資訊。 不過,若要防止資訊洩漏,您應該防止不受信任網路中的呼叫者尋找JMX MBean並存取健康狀態量度。
JBoss連線埠
用途 |
連接埠 |
---|---|
存取網頁應用程式 |
[JBOSS_Root]/standalone/configuration/lc_[database].xml HTTP/1.1聯結器連線埠8080 AJP 1.3聯結器連線埠8009 SSL/TLS聯結器連線埠8443 |
CORBA支援 |
[JBoss根]/server/all/conf/jacorb.properties OAPort 3528 OASSLPort 3529 |
WebLogic連線埠
用途 |
連接埠 |
---|---|
存取網頁應用程式 |
|
存取JEE上的AEM Forms不需要WebLogic管理連線埠 |
|
WebSphere連線埠
如需AEM Forms on JEE所需的WebSphere連線埠相關資訊,請前往WebSphere Application Server UI中的連線埠號碼設定。
請參考一節中所述的實體架構 JEE實體架構上的AEM Forms,您應該為計畫使用的所有連線設定SSL。 具體而言,所有SOAP連線都必須透過SSL執行,以防止在網路上洩露使用者認證。
如需有關如何在JBoss、WebLogic和WebSphere上設定SSL的說明,請參閱 管理說明.
如需如何將憑證匯入為AEM Forms伺服器設定的JVM (Java虛擬機器器)的指示,請參閱以下連結中的相互驗證一節: AEM Forms Workbench說明.
將應用程式伺服器設定為支援SSL之後,您必須確保所有應用程式和服務的HTTP流量都已強制使用SSL連線埠。
若要設定WebSphere或WebLogic的SSL重新導向,請參閱您的應用程式伺服器檔案。
開啟命令提示字元,瀏覽至/JBOSS_HOME/standalone/configuration目錄,然後執行下列命令:
keytool -genkey -alias jboss7 -keyalg RSA -keystore server.keystore -validity 10950
開啟JBOSS_HOME/standalone/configuration/standalone.xml檔案進行編輯。
在 <subsystem xmlns="urn<span id=" translate="no" />網域:web:1.1" native="false" default-virtual-server="default-host">元素,新增下列詳細資料::jboss:
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" enabled="true" secure="true"/>
在https聯結器元素中新增下列程式碼:
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true" enabled="true">
<ssl name="jboss7_ssl" key-alias="jboss71" password="Tibco321" certificate-key-file="../standalone/configuration/server.keystore" protocol="TLSv1"/>
</connector>
儲存並關閉standalone.xml檔案。
本節包含在JEE上執行AEM Forms時,特定於Windows的安全性建議。
JEE上的AEM Forms整套金鑰安裝依預設會使用「本機系統」帳戶設定服務帳戶。 內建的本機系統使用者帳戶具有高度協助功能;它是管理員群組的一部分。 如果背景工作處理序識別以「本機系統」使用者帳戶執行,則該背景工作處理序具有對整個系統的完整存取權。
在Microsoft管理主控台(MMC)中,建立Forms伺服器服務的本機使用者,以以下身分登入:
選取 設定 > 管理工具 > 服務.
按兩下應用程式伺服器服務並停止該服務。
在 登入 索引標籤,選取 此帳戶,瀏覽您建立的使用者帳戶,然後輸入帳戶的密碼。
在「本機安全性設定」視窗的「使用者許可權指派」下,將下列許可權授與執行Forms伺服器的使用者帳戶:
為新的使用者帳戶提供修改下列目錄的許可權:
[JBoss root]/server/[type]/svcnative/DocumentStorage
[AEM-Forms-installation-location]\crx-repository
為新的使用者帳戶提供下列目錄的寫入許可權:
JBoss Application Server的預設安裝位置:
啟動應用程式伺服器服務。
JEE上的AEM Forms透過下列方式使用檔案系統:
當使用watched資料夾作為Forms伺服器服務傳送和接收檔案的方式時,應採取檔案系統安全性的額外預防措施。 當使用者將內容放入watched資料夾中時,該內容會透過watched資料夾公開。 在此情況下,服務不會驗證實際的一般使用者。 相反,它依賴在檔案夾層級設定的ACL和共用層級安全性,以確定誰能夠有效地叫用服務。
本節包含在JEE上執行AEM Forms時,JBoss 7.0.6專屬的應用程式伺服器設定建議。
使用全包安裝方法在JBoss上的JEE上安裝AEM Forms時,已設定存取JBoss管理主控台和JMX主控台(已停用JMX監視)。 如果您使用自己的JBoss Application Server,請確定對JBoss管理主控台和JMX監控主控台的存取是安全的。 JMX監視主控台的存取權是在名為jmx-invoker-service.xml的JBoss組態檔中設定。
登入Administration Console後,可以修改URL來瀏覽主控台的目錄清單。 例如,如果您將URL變更為下列URL之一,可能會出現目錄清單:
https://<servername>:8080/adminui/secured/
https://<servername>:8080/um/
本節包含在JEE上執行AEM Forms時,用於保護WebLogic 9.1安全的應用程式伺服器設定建議。
將weblogic.xml檔案中的index-directories屬性設定為 false
,如下列範例所示:
<container-descriptor>
<index-directory-enabled>false
</index-directory-enabled>
</container-descriptor>
依預設,WebLogic不會啟用預設的SSL監聽連線埠7002。 設定SSL之前,請在WebLogic伺服器管理主控台中啟用此連線埠。
本節包含應用程式伺服器組態建議,可保護在JEE上執行AEM Forms的WebSphere。
設定 directoryBrowsingEnabled
ibm-web-ext.xml檔案中的屬性 false
.