跨站点请求伪造(CSRF)是一个网站漏洞,有效用户的浏览器用于发送恶意请求(可能通过iFrame)。 由于浏览器按域发送cookie,因此,如果用户当前已登录到应用程序,则用户的数据可能会受到损害。
例如,考虑您登录到浏览器中的管理控制台的情况。 您会收到一封包含链接的电子邮件。 单击链接,该链接将在浏览器中打开一个新选项卡。 您打开的页面包含一个隐藏的iFrame,它使用已验证的AEM forms会话中的cookie向表单服务器发出恶意请求。 由于用户管理收到有效的cookie,因此它会传递请求。
Referer: 请求来自的源页面的地址。例如,site1.com上的网页包含指向site2.com的链接。 单击该链接将请求发布到site2.com。 此请求的引用者为site1.com,因为此请求来自源为site1.com的页面。
白名单URI: URI标识正在请求的表单服务器上的资源,例如,/adminui或/contentspace。某些资源可能允许从外部站点请求进入应用程序。 这些资源被视列入允许列表为已URI。 表单服务器从不从的URI执行列入允许列表引用检查。
Null引用 器:打开新的浏览器窗口或选项卡时,键入地址并按Enter,引用器为null。该请求是全新的,并非源自父网页;因此,该请求没有引证人。 表单服务器可以从以下位置接收空引用器:
允许在SOAP和REST端点上使用空引用器。 还允许对/adminui和/contentspace等所有URI登录页及其相应映射资源使用空引用程序。 例如,/contentspace的映射servlet为/contentspace/faces/jsp/login.jsp,它应为空引用器异常。 仅当为Web应用程序启用GET过滤时,才需要此例外。 应用程序可以指定是否允许空引用器。 请参阅AEM表单的强化和安全中的“防止跨站点请求伪造攻击”。
允许的引用者 异常:允许的引用者异常是允许的引用者列表的子列表,从中阻止请求。允许引用例外是Web应用程序特有的。 如果不允许允许引用者的子集调用特定的Web应用程序,则可以通过允许的引用阻止列表者例外来引用者。 允许的引用例外在应用程序的web.xml文件中指定。 (请参阅帮助和Tutorials页面上的AEM表单的强化和安全性中的“防止跨站点请求伪造攻击”。)
AEM表单提供引用器过滤功能,有助于防止CSRF攻击。 下面是引用筛选的工作方式:
表单服务器检查用于调用的HTTP方法:
表单服务器检查请求的URI是否列入允许列表被:
如果请求中有引用者,服务器将检查它是否为允许的引用者。 如果允许,服务器将检查引用者异常:
如果请求中没有引用器,服务器将检查是否允许空引用器。
运行Configuration Manager时,默认主机和IP地址或表单服务器将添加到允许的引用列表。 您可以在管理控制台中编辑此列表。
在管理控制台中,单击“设置”>“用户管理”>“配置”>“配置允许的引用者URL”。“允许的引用者”列表卡显示在页面底部。
要添加允许的引用者,请执行以下操作:
0
(零),则该服务器上的所有端口都将启用。 您还可以输入特定端口号以仅启用该端口。要从允许的引用列表中删除条目,请从列表中选择该项,然后单击删除。
如果允许的引用列表为空,则CSRF功能将停止工作,并且系统将变得不安全。
更改允许的引用列表后,重新启动AEM forms服务器。