了解各种安全强化设置,以增强在企业内部网中运行的JEE上AEM Forms的安全性。
本文描述了保护在JEE上运行AEM Forms的服务器的建议和最佳实践。 对于您的操作系统和应用服务器来说,这并非全面的主机强化文档。 相反,本文描述了您应实施的各种安全强化设置,以增强在公司内部网中运行的JEE上AEM Forms的安全性。 但是,为确保JEE应用程序服务器上的AEM Forms保持安全,您还应实施安全监控、检测和响应过程。
本文描述了在安装和配置生命周期的以下阶段应用的硬化技术:
AEM Forms on JEE是高度可自定义的,可以在许多不同的环境中工作。 某些建议可能不符合您组织的需求。
在JEE上安装AEM Forms之前,您可以将安全解决方案应用到网络层和操作系统。 本节介绍一些问题,并就减少这些领域的安全漏洞提出建议。
在UNIX和Linux上安装和配置
您不应使用根Shell在JEE上安装或配置AEM Forms。 默认情况下,文件安装在/opt目录下,执行安装的用户需要/opt下的所有文件权限。 或者,可以在单个用户已拥有所有文件权限的/user目录下执行安装。
在Windows上安装和配置
如果要在JBoss上使用整套方法在JEE上安装AEM Forms,或者您要安装PDF生成器,则您应以管理员身份在Windows上进行安装。 此外,在具有本机应用程序支持的Windows上安装PDF生成器时,必须以安装Microsoft Office的Windows用户身份运行安装。 有关安装权限的详细信息,请参阅在JEE上安装和部署AEM Forms文档(针对您的应用程序服务器)。
网络安全漏洞是任何面向Internet或面向Intranet的应用程序服务器面临的首要威胁之一。 本节介绍针对这些漏洞强化网络上的主机的过程。 它解决了网络分段、传输控制协议/因特网协议(TCP/IP)栈加固以及使用防火墙保护主机的问题。
下表介绍了减少网络安全漏洞的常用进程。
带有 OS 剪贴板 |
描述 |
---|---|
非军事区(DMZ) |
在非军事区(DMZ)内部署表单服务器。 分段至少应存在于两个级别中,应用程序服务器用于在JEE上运行AEM Forms位于内部防火墙后。 将外部网络与包含Web服务器的DMZ分离,而Web服务器又必须与内部网络分离。 使用防火墙实现隔离层。 对通过每个网络层的流量进行分类和控制,以确保仅允许绝对最少的所需数据。 |
专用IP地址 |
将网络地址转换(NAT)与AEM Forms应用程序服务器上的RFC 1918专用IP地址结合使用。 分配专用IP地址(10.0.0.0/8、172.16.0.0/12和192.168.0.0/16),使攻击者更难通过Internet将通信路由到NAT内部主机和从NAT内部主机。 |
防火墙 |
使用以下条件选择防火墙解决方案:
|
数据库端口 |
请勿对数据库使用默认监听端口(MySQL - 3306、Oracle - 1521、MS SQL - 1433)。 有关更改数据库端口的信息,请参阅数据库文档。 使用其他数据库端口会影响JEE配置上的整体AEM Forms。 如果更改默认端口,则必须在配置的其他区域(如JEE上的AEM Forms的数据源)中进行相应的修改。 有关在JEE上的AEM Forms中配置数据源的信息,请参阅 AEM Forms用户指南中的在JEE上安装和升级AEM Forms或在JEE上升级到AEM Forms(针对您的应用程序服务器)。 |
下表介绍了一些将操作系统中发现的安全漏洞降至最低的潜在方法。
带有 OS 剪贴板 |
描述 |
---|---|
安全修补程序 |
如果供应商安全补丁和升级不能及时应用,则未授权用户可能获得对应用程序服务器的访问权限的风险增加。 在将安全修补程序应用到生产服务器之前,先测试它们。 此外,还应创建定期检查和安装修补程序的策略和程序。 |
病毒防护软件 |
病毒扫描器可以通过扫描签名或监视异常行为来识别感染病毒的文件。 扫描程序将其病毒签名保留在文件中,该文件通常存储在本地硬盘上。 由于经常发现新病毒,您应该经常为病毒扫描程序更新此文件以识别所有当前病毒。 |
网络时间协议(NTP) |
要进行取证分析,请在表单服务器上保持准确的时间。 使用NTP来同步所有直接连接到Internet的系统上的时间。 |
有关操作系统的其他安全信息,请参阅"操作系统安全信息"。
本节介绍在AEM Forms安装过程中可用于减少安全漏洞的技术。 在某些情况下,这些技术会使用作为安装过程一部分的选项。 下表介绍了这些技术。
带有 OS 剪贴板 |
描述 |
---|---|
权限 |
使用安装软件所需的最少权限数。 使用不在“Administrators”(管理员)组中的帐户登录到计算机。 在Windows上,您可以使用“运行为”命令以管理用户身份在JEE安装程序上运行AEM Forms。 在UNIX和Linux系统上,使用 |
软件源 |
请勿从不受信任的源在JEE上下载或运行AEM Forms。 恶意项目可能包含以多种方式违反安全性的代码,包括数据盗窃、修改和删除以及拒绝服务。 从Adobe DVD或仅从受信任的源在JEE上安装AEM Forms。 |
磁盘分区 |
将AEM Forms放在JEE上的专用磁盘分区上。 磁盘分段是一个过程,它将服务器上的特定数据保留在单独的物理磁盘上,以增加安全性。 以这种方式排列数据可以降低目录遍历攻击的风险。 计划创建与系统分区分开的分区,您可以在JEE内容目录上安装AEM Forms。 (在Windows上,系统分区包含system32目录或引导分区。) |
组件 |
评估现有服务并禁用或卸载任何不需要的服务。 请勿安装不必要的组件和服务。 应用程序服务器的默认安装可能包含您使用时不需要的服务。 在部署之前,您应禁用所有不必要的服务,以最大限度地减少攻击的入口点。 例如,在JBoss上,可以在META-INF/jboss-service.xml描述符文件中注释掉不必要的服务。 |
跨域策略文件 |
服务器上存在 |
操作系统安全设置 |
如果需要在Solaris平台上使用192位或256位XML加密,请确保安装 |
在JEE上成功安装AEM Forms后,从安全角度定期维护环境非常重要。
以下部分详细描述了建议保护已部署的表单服务器的不同任务。
以下建议设置适用于管理Web应用程序外的JEE服务器上的AEM Forms。 要降低服务器的安全风险,请在JEE上安装AEM Forms后立即应用这些设置。
安全修补程序
如果供应商安全补丁和升级不能及时应用,则未授权用户可能获得对应用程序服务器的访问权限的风险增加。 在将安全修补程序应用到生产服务器之前,先测试它们,以确保应用程序的兼容性和可用性。 此外,还应创建定期检查和安装修补程序的策略和程序。 AEM Forms on JEE更新位于企业产品下载站点。
服务帐户(仅Windows上的JBoss统包)
AEM Forms on JEE默认情况下使用LocalSystem帐户安装服务。 内置的LocalSystem用户帐户具有高度的可访问性;它是管理员组的一部分。 如果worker-process标识作为LocalSystem用户帐户运行,则该worker进程对整个系统具有完全访问权限。
要使用特定的非管理帐户运行部署了JEE上的AEM Forms的应用程序服务器,请按照以下说明操作:
在Microsoft管理控制台(MMC)中,为表单服务器服务创建一个本地用户以登录为:
无法更改PDF生成器的此设置。
选择开始 > 设置 > 管理工具 > 服务。
多次在JEE上单击JBoss for AEM Forms并停止服务。
在登录选项卡上,选择此帐户,浏览您创建的用户帐户,然后输入帐户的密码。
在MMC中,打开本地安全设置并选择本地策略 > 用户权限分配。
将以下权限分配给表单服务器运行时所使用的用户帐户:
为以下目录赋予新用户帐户修改权限:
[JBoss root]/server/[type]/svcnative/DocumentStorage
应用程序服务器安装下的目录[AEM-Forms-installation-location]\crx-repository
为以下目录赋予新用户帐户写入权限:
JBoss Application Server的默认安装位置:
开始应用程序服务器。
禁用Configuration Manager引导servlet
Configuration Manager使用部署在应用程序服务器上的Servlet在JEE数据库上执行AEM Forms的引导。 由于配置管理器在配置完成前访问此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。 战争模块如下:
<!-- 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://
锁定对信任存储的远程访问
Configuration Manager允许您将Acrobat Reader DC扩展凭据上传到JEE信任存储上的AEM Forms。 这意味着,默认情况下已启用通过远程协议(SOAP和EJB)访问信任存储凭据服务。 在您使用Configuration Manager上传权限凭据或稍后决定使用管理控制台管理凭据后,不再需要此访问。
您可以按照禁用对服务的非基本远程访问部分中的步骤禁用对所有信任存储服务的远程访问。
禁用所有非基本匿名访问
某些表单服务器服务具有可由匿名调用者调用的操作。 如果不需要匿名访问这些服务,请按照禁用对服务的非必要匿名访问中的步骤禁用它。
安装JEE上的AEM Forms时,将为用户Super Administrator/ login-id Administrator配置一个默认用户帐户,其默认密码为password。 您应立即使用Configuration Manager更改此密码。
在Web浏览器中键入以下URL:
https://[host name]:[port]/adminui
默认端口号为以下任一值:
JBoss: 8080
WebLogic Server: 7001
WebSphere: 9080。
在用户名字段中,键入administrator
,在密码字段中键入password
。
单击设置 > 用户管理 > 用户和组。
在查找字段中键入administrator
,然后单击查找。
单击用户列表中的Super Administrator。
单击“编辑用户”页上的更改口令。
指定新密码,然后单击保存。
此外,建议通过执行以下步骤来更改CRX Administrator的默认密码:
https://[server]:[port]/lc/libs/granite/security/content/useradmin.html
。Web服务定义语言(WSDL)生成应仅对开发环境启用,开发者使用WSDL生成来构建其客户端应用程序。 可以选择在生产环境中禁用WSDL生成,以避免暴露服务的内部详细信息。
在Web浏览器中键入以下URL:
https://[host name]:[port]/adminui
单击设置>核心系统设置>配置。
取消选择“启用WSDL”,然后单击确定。
下表介绍了在安装JEE应用程序上的AEM Forms后保护应用程序服务器的一些技术。
带有 OS 剪贴板 |
描述 |
---|---|
应用程序服务器管理控制台 |
在应用程序服务器上的JEE上安装、配置和部署AEM Forms后,您应禁用对应用程序服务器管理控制台的访问。 有关详细信息,请参阅应用程序服务器文档。 |
应用程序服务器Cookie设置 |
应用程序Cookie由应用程序服务器控制。 部署应用程序时,应用程序服务器管理员可以指定服务器范围或特定于应用程序的cookie首选项。 默认情况下,服务器设置为首选项。 应用程序服务器生成的所有会话Cookie都应包含 您可以限制使用仅HTTPS发送Cookie。 因此,不会通过HTTP发送未加密的文件。 应用程序服务器管理员应全局为服务器启用安全Cookie。 例如,使用JBoss Application Server时,可以将连接器元素修改为 有关Cookie设置的详细信息,请参阅应用程序服务器文档。 |
目录浏览 |
当有人请求不存在的页面或请求控制器的名称(请求字符串以正斜杠(/)结尾)时,应用程序服务器不应返回该目录的内容。 为防止出现这种情况,您可以禁用应用程序服务器上的目录浏览。 您应该为管理控制台应用程序以及服务器上运行的其他应用程序执行此操作。 对于JBoss,请将web.xml文件中 <servlet> <servlet-name>默认</servlet-name> <servlet-class> org.apache.catalina.servlets.DefaultServlet </servlet-class> <init-param> <param-name>列表</param-name> <param-value>假</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> 对于WebSphere,将ibm-web-ext.xmi文件中的 对于WebLogic,将weblogic.xml文件中的index-directories属性设置为 <container-descriptor> <index-directory-enabled>假 </index-directory-enabled> </container-descriptor> |
在保护数据库时,应执行数据库供应商描述的度量。 您应分配具有授予AEM Forms在JEE上使用所需最低数据库权限的数据库用户。 例如,请勿使用具有数据库管理员权限的帐户。
在Oracle上,您使用的CONNECT库帐户只需拥有“”、“资源”和“创建视图”权限。 有关其他数据库的类似要求,请参阅准备在JEE(Single Server)上安装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服务(JBoss for AEM Forms on JEE)属性修改为具有AEM Forms数据库和最少权限集的登录帐户。 如果您从命令行而不是作为Windows服务运行JBoss,则无需执行此步骤。
将SQL Server的安全性从混合模式设置为仅Windows身份验证。
开始WebLogic服务器管理控制台,方法是在Web浏览器的URL行中键入以下URL:
https://[host name]:7001/console
在“更改中心”下,单击“锁定并编辑”。
在“域结构”下,单击[base_domain] > 服务 > JDBC > 数据源,在右窗格中单击IDP_DS。
在下一个屏幕上,在Configuration选项卡上,单击Connection Pool选项卡,在Properties框中,键入integratedSecurity=true
。
在“域结构”下,单击[base_domain] > 服务 > JDBC > 数据源,在右侧窗格中单击RM_DS。
在下一个屏幕上,在Configuration选项卡上,单击Connection Pool选项卡,在Properties框中,键入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数据库模式包含有关系统配置和业务流程的敏感信息,应隐藏在防火墙后。 应将数据库视为与表单服务器位于同一信任边界内。 要防止信息泄露和业务数据失窃,必须由数据库管理员(DBA)配置数据库,以仅允许授权管理员访问。
为了增加预防措施,您应考虑使用数据库供应商特定工具来加密包含以下数据的表中的列:
有关供应商特定工具的信息,请参阅"数据库安全信息"。
轻量级目录访问协议(LDAP)目录通常由JEE上的AEM Forms用作企业用户和用户组信息的源,以及执行口令身份验证的方法。 您应确保将LDAP目录配置为使用安全套接字层(SSL),并将JEE上的AEM Forms配置为使用其SSL端口访问LDAP目录。
使用LDAP的常见攻击涉及攻击者故意多次无法进行身份验证。 这会强制LDAP目录服务器将用户从所有依赖LDAP的服务中锁定。
您可以设置当用户多次无法验证到AEM Forms时AEM Forms实现的失败尝试次数和随后的锁定时间。 在管理控制台中,选择低值。 选择失败尝试次数时,请务必了解,在进行所有尝试后,AEM Forms会在LDAP目录服务器执行之前锁定用户。
正确和安全地使用应用程序审计和日志记录有助于确保尽快跟踪和检测安全性和其他异常事件。 在应用程序中有效使用审核和日志记录包括跟踪成功和失败登录等项目,以及关键应用程序事件(如创建或删除关键记录)。
您可以使用审核来检测多种类型的攻击,包括:
此表介绍了可用于减少服务器漏洞的审计和日志记录技术。
带有 OS 剪贴板 |
描述 |
---|---|
日志文件ACL |
在JEE日志文件访问控制列表(ACL)上设置适当的AEM Forms。 设置适当的凭据有助于防止攻击者删除文件。 日志文件目录上的安全权限应为管理员和系统组的完全控制权限。 AEM Forms用户帐户应仅具有“读取”和“写入”权限。 |
日志文件冗余 |
如果资源允许,则通过使用Syslog、Tivoli、Microsoft Operations Manager(MOM)Server或其他机制将日志实时发送到攻击者无法访问的其他服务器(仅写入)。 以这种方式保护日志有助于防止篡改。 此外,将日志存储在中央存储库有助于进行关联和监控(例如,当多个表单服务器正在使用,并且在多台计算机上发生猜测密码攻击时,会向每台计算机查询密码)。 |
您可以允许非管理员用户使用PDF生成器。 通常,只有具有管理权限的用户才能使用PDF生成器。 执行以下步骤使非管理员用户能运行PDF生成器:
创建环境变量名PDFG_NON_ADMIN_ENABLED。
将变量的值设置为TRUE。
重新启动AEM Forms实例。
在JEE上成功安装AEM Forms后,务必定期维护环境的安全。 本节介绍建议在JEE生产服务器上维护AEM Forms安全的任务。
反向代理可用于确保外部和内部用户均可使用JEE Web应用程序上AEM Forms的一组URL。 此配置比允许用户直接连接到JEE上运行的AEM Forms所在的应用程序服务器更加安全。 反向代理为在JEE上运行AEM Forms的应用程序服务器执行所有HTTP请求。 用户只能对反向代理进行网络访问,并且只能尝试反向代理支持的URL连接。
AEM Forms在JEE根URL上与反向代理服务器一起使用
JEE Web应用程序上每个AEM Forms的以下应用程序根URL。 您应配置反向代理,仅为向最终用户提供Web应用程序功能的URL。
某些URL会高亮显示为面向最终用户的Web应用程序。 您应避免暴露Configuration Manager的其他URL,以便通过反向代理访问外部用户。
根URL |
用途和/或关联的Web应用程序 |
基于Web的界面 |
最终用户访问 |
---|---|---|---|
/ReaderExtensions/* |
Acrobat Reader DC扩展功能将使用权限应用于PDF文档的最终用户Web应用程序 |
是 |
是 |
/edc/* |
Rights Management最终用户Web应用程序 |
是 |
是 |
/edcws/* |
用于Rights Management的Web服务URL |
否 |
是 |
/pdfgui/* |
PDF Generator管理Web应用程序 |
是 |
是 |
/工作区/* |
工作区最终用户Web应用程序 |
是 |
是 |
/workspace-server/* |
工作区客户端应用程序需要的工作区servlet和数据服务 |
是 |
是 |
/adobe-bootstrapper/* |
用于在JEE存储库上引导AEM Forms的Servlet |
否 |
否 |
/soap/* |
表单服务器Web服务的信息页 |
否 |
否 |
/soap/services/* |
所有表单服务器服务的Web服务URL |
否 |
否 |
/edc/admin/* |
Rights Management管理Web应用程序 |
是 |
否 |
/admui/* |
管理控制台主页 |
是 |
否 |
/TruststoreComponent/ /* |
“信任存储管理”页 |
是 |
否 |
/FormsIVS/* |
Forms IVS应用程序,用于测试和调试表单渲染 |
是 |
否 |
/OutputIVS/* |
用于测试和调试输出服务的输出IVS应用程序 |
是 |
否 |
/rmws/* |
用于Rights Management的REST URL |
否 |
是 |
/OutputAdmin/* |
输出管理页面 |
是 |
否 |
/FormServer/* |
Forms web应用程序文件 |
是 |
否 |
/FormServer/GetImage Servlet |
用于在HTML转换期间获取JavaScript |
否 |
否 |
/FormServerAdmin/* |
Forms管理页面 |
是 |
否 |
/repository/* |
WebDAV(调试)访问的URL |
是 |
否 |
/AACComponent/* |
应用程序和服务用户界面 |
是 |
否 |
/WorkspaceAdmin/* |
工作区管理页 |
是 |
否 |
/rest/* |
Rest支持页面 |
是 |
否 |
/CoreSystemConfig/* |
AEM Forms on JEE核心配置设置页 |
是 |
否 |
/um/ |
用户管理身份验证 |
否 |
是 |
/um/* |
用户管理界面 |
是 |
否 |
/DocumentManager/* |
在启用HTTP文档的SOAP传输或EJB传输中访问远程端点、SOAP WSDL端点和Java SDK时要处理的文档的上传和下载。 |
是 |
是 |
跨站点请求伪造(CSRF)攻击利用网站对用户所具有的信任来传输未经授权和由用户无意的命令。 通过在网页中包含链接或脚本或电子邮件中的URL来设置攻击,以访问用户已通过身份验证的其他站点。
例如,您可能在同时浏览其他网站时登录到管理控制台。 网页之一可以包括具有src
属性的HTML图像标签,该属性目标受害者网站上的服务器端脚本。 通过利用Web浏览器提供的基于Cookie的会话身份验证机制,攻击网站可以将恶意请求发送到此受害服务器端脚本,伪装成合法用户。 有关更多示例,请参阅https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)#Examples。
CSRF共有以下特征:
AEM Forms on JEE使用推荐人过滤器功能来阻止CSRF攻击。 本节中使用以下术语来描述推荐人过滤机制:
“推荐人过滤”过程可描述如下:
表单服务器检查用于调用的HTTP方法:
表单服务器检查请求的URI是否存在于允许列表:
如果请求中有推荐人,则服务器将检查该请求是否为允许推荐人。 如果允许,服务器将检查推荐人异常:
如果请求中没有推荐人,则服务器将检查是否允许Null推荐人:
AEM Forms on JEE提供了一个推荐人过滤器,用于指定允许访问您的服务器资源的推荐人。 默认情况下,推荐人过滤器不过滤使用安全HTTP方法(例如GET)的请求,除非CSRF_CHECK_GETS设置为true。 如果允许的推荐人项的端口号设置为0,则AEM Forms on JEE将允许来自该主机的所有具有推荐人的请求,而不管端口号。 如果未指定端口号,则仅允许来自默认端口80(HTTP)或端口443(HTTPS)的请求。 如果“允许的推荐人”列表中的所有条目都被删除,则“推荐人过滤”将被禁用。
首次安装文档服务时,“允许的推荐人”列表将更新为安装了文档服务的服务器的地址。 服务器的条目包括服务器名称、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地址或限定域名的名称),允许列表不会更新。 修改允许的推荐人列表以适合您的业务环境。 请勿使用默认的允许环境列表在生产推荐人中部署表单服务器。 修改任何允许的推荐人、推荐人例外或URI后,请确保重新启动服务器以使更改生效。
管理允许的推荐人列表
您可以从管理控制台的用户管理界面管理允许的推荐人列表。 用户管理界面为您提供创建、编辑或删除列表的功能。 有关使用“允许的推荐人”列表的详细信息,请参阅管理帮助的* 防止CSRF攻击*部分。
管理允许的推荐人异常和允许的URI列表
AEM Forms on JEE提供API来管理允许的推荐人异常列表和允许的URI列表。 您可以使用这些API来检索、创建、编辑或删除列表。 以下是可用API的列表:
有关API的详细信息,请参阅* AEM Forms on JEE API Reference*。
在全局级别使用LC_GLOBAL_ALLOWED_REFERER_EXCEPTION列表进行允许的推荐人异常,即定义适用于所有应用程序的异常。 此列表仅包含具有绝对路径(例如,/index.html
)或相对路径(例如/sample/
)。 您还可以在相对URI的末尾附加一个常规表达式,例如/sample/(.)*
。
LC_GLOBAL_ALLOWED_REFERER_EXCEPTION列表ID在adobe-usermanager-client.jar
中的com.adobe.idp.um.api
命名空间的UMConstants
类中定义为常量。 您可以使用AEM Forms API创建、修改或编辑此列表。 例如,要创建“全局允许的推荐人例外”列表,请使用:
addAllowedRefererExceptions(UMConstants.LC_GLOBAL_ALLOWED_REFERER_EXCEPTION, Arrays.asList("/index.html", "/sample/(.)*"))
对于特定于应用程序的异常,请使用CSRF_ALLOWED_REFERER_EXCEPTIONS列表。
禁用推荐人过滤器
在推荐人过滤器完全阻止访问表单服务器且您无法编辑允许的推荐人列表的事件中,您可以更新服务器启动脚本并禁用推荐人过滤。
在启动脚本中包含-Dlc.um.csrffilter.disabled=true
JAVA参数并重新启动服务器。 确保在正确重新配置“允许”推荐人列表后删除JAVA参数。
推荐人过滤自定义WAR文件
您可能已创建自定义WAR文件以在JEE上与AEM Forms一起使用,以满足您的业务要求。 要为自定义WAR文件启用推荐人过滤,请在WAR的类路径中包含adobe-usermanager-client.jar,并在* web.xml*文件中包含一个包含以下参数的过滤器条目:
CSRF_CHECK_GETS控 制对GET请求的推荐人检查。如果未定义此参数,则将默认值设置为false。 仅在要过滤GET请求时包含此参数。
CSRF_ALLOWED_REFERER_EXCEPTIONS是“允 许的推荐人异常”列表的ID。推荐人筛选器可阻止来自由列表ID标识的列表中的推荐人的请求在表单服务器上调用任何资源。
CSRF_ALLOWED_URIS_列表_ NAME是允许的URI列表的ID。推荐人过滤器不阻止对由列表ID标识的列表中任何资源的请求,而不管请求中推荐人头的值。
CSRF_ALLOW_NULL_REFERER在推荐人为 null或不存在推荐人时控制“过滤器”行为。如果未定义此参数,则将默认值设置为false。 仅当要允许Null推荐人时,才包含此参数。 允许空推荐人可能允许某些类型的跨站点请求伪造攻击。
CSRF_NULL_REFERER_EXCEPTIONS是URI的列表, 当推荐人为null时,不对其执行推荐人检查。仅当将CSRF_ALLOW_NULL_REFERER设置为false时,才启用此参数。 在列表中用逗号分隔多个URI。
以下是SAMPLE WAR文件web.xml文件中的过滤器条目示例:
<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所需的协议和端口,并为在JEE上以安全网络配置部署AEM Forms提供建议。
如上节所述,当您配置安全网络架构时,JEE上的AEM Forms与企业网络中的其他系统之间的交互需要以下网络协议。
协议 |
用法 |
---|---|
HTTP |
|
SOAP |
|
RMI |
AEM Forms on JEE SDK在企业JavaBeans(EJB)模式中使用时 |
IMAP / POP3 |
|
UNC文件IO |
AEM Forms on JEE监视监视的文件夹以输入到服务(监视的文件夹端点) |
LDAP |
|
JDBC |
|
WebDAV |
支持任何WebDAV客户端在JEE设计时存储库(表单、片段等)上远程浏览AEM Forms |
AMF |
Adobe Flash应用程序,其中AEM Forms在JEE服务器服务上配置了远程处理端点 |
JMX |
AEM Forms on JEE公开MBean以使用JMX进行监视 |
本节介绍支持的每种类型应用程序服务器的默认端口(和备用配置范围)。 必须在内部防火墙上启用或禁用这些端口,具体取决于您希望允许连接到运行JEE上的AEM Forms的应用程序服务器的客户端的网络功能。
默认情况下,服务器在adobe.com命名空间下公开多个JMX MBean。 仅公开对服务器运行状况监视有用的信息。 但是,为了防止信息泄露,您应防止不受信任的网络中的呼叫者查找JMX MBean并访问运行状况度量。
JBoss端口
用途 |
端口 |
---|---|
访问Web应用程序 |
[JBOSS_Root]/standalone/configuration/lc_[database].xml HTTP/1.1连接器端口8080 AJP 1.3连接器端口8009 SSL/TLS连接器端口8443 |
CORBA支持 |
[JBoss root]/server/all/conf/jacorb.properties OAPort 3528 OASSLPort 3529 |
WebLogic端口
用途 |
端口 |
---|---|
访问Web应用程序 |
|
访问JEE上的AEM Forms不需要WebLogic管理端口 |
|
WebSphere端口
有关AEM Forms在JEE上需要的WebSphere端口的信息,请转到WebSphere应用程序服务器UI中的端口号设置。
有关JEE物理架构](hardening-aem-forms-jee-environment.md#aem-forms-on-jee-physical-architecture)上的[AEM Forms部分中描述的物理架构,您应为计划使用的所有连接配置SSL。 具体而言,所有SOAP连接都必须通过SSL进行,以防止用户凭据在网络上暴露。
有关如何在JBoss、WebLogic和WebSphere上配置SSL的说明,请参阅管理帮助中的“配置SSL”。
有关如何将证书导入为为AEM Forms服务器配置的JVM(Java虚拟机)的说明,请参阅AEM Forms Workbench Help中的“相互身份验证”部分。
在将应用程序服务器配置为支持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:jboss:domain:web:1.1" native="false" default-virtual-server="default-host">元素后,添加以下详细信息:
<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的安全建议。
默认情况下,AEM Forms on JEE turnkey安装使用本地系统帐户设置服务帐户。 内置的本地系统用户帐户具有高度的可访问性;它是管理员组的一部分。 如果工作进程标识作为本地系统用户帐户运行,则该工作进程对整个系统具有完全访问权限。
在Microsoft管理控制台(MMC)中,为表单服务器服务创建一个本地用户以登录为:
选择设置 > 管理工具 > 服务。
多次单击应用程序服务器服务并停止该服务。
在登录选项卡上,选择此帐户,浏览您创建的用户帐户,然后输入帐户的密码。
在“本地安全设置”窗口的“用户权限分配”下,为表单服务器运行时所使用的用户帐户授予以下权限:
为以下目录赋予新用户帐户修改权限:
[JBoss root]/server/[type]/svcnative/DocumentStorage
应用程序服务器安装下的目录[AEM-Forms-installation-location]\crx-repository
为以下目录赋予新用户帐户写入权限:
JBoss Application Server的默认安装位置:
开始应用程序服务器服务。
AEM Forms on JEE通过以下方式使用文件系统:
使用监视文件夹作为通过表单服务器服务发送和接收文档的方式时,请对文件系统安全性采取额外的预防措施。 当用户将内容放置到监视文件夹中时,该内容会通过监视文件夹公开。 在这种情况下,服务不会验证实际的最终用户。 相反,它依赖于在文件夹级别设置ACL和共享级别安全性来确定谁可以有效地调用服务。
本节包含特定于JBoss 7.0.6(用于在JEE上运行AEM Forms)的应用程序服务器配置建议。
在JBoss上使用整套安装方法在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的应用程序服务器配置建议。
将ibm-web-ext.xml文件中的directoryBrowsingEnabled
属性设置为false
。