Citrix ADC

导入

若干 Web App Firewall 功能可以使用您在配置时上载到 Web App Firewall 的外部文件。使用 GUI,您可以在“导入”窗格中管理这些文件,该窗格有四个选项卡对应于您可以导入的四种类型的文件:HTML 错误对象、XML 错误对象、XML 架构和 Web 服务描述语言 (WSDL) 文件。使用 Citrix ADC 命令行,您可以导入这些类型的文件,但无法导出它们。

HTML 错误对象

当用户与 HTML 或 Web 2.0 页的连接被阻止时,或者用户要求不存在的 HTML 或 Web 2.0 页面时,Web App Firewall 会向用户的浏览器发送基于 HTML 的错误响应。配置 Web App Firewall 应使用的错误响应时,您有两种选择:

  • 您可以配置重定向 URL,该 URL 可以托管在用户也有权访问的任何 Web 服务器上。例如,如果 Web 服务器上有自定义错误页 404.html,则可以将 Web App Firewall 配置为在阻止连接时将用户重定向到该页面。
  • 您可以配置 HTML 错误对象,该对象是托管在 Web App Firewall 本身上的基于 HTML 的 Web 页。如果选择此选项,则必须将 HTML 错误对象上载到 Web App Firewall。您可以在导入窗格中的 HTML 错误对象选项卡上执行此操作。

错误对象必须是不包含非 HTML 语法的标准 HTML 文件,除了 Web App Firewall 错误对象自定义变量。它不能包含任何 CGI 脚本、服务器解析的代码或 PHP 代码。通过自定义变量,您可以将故障排除信息嵌入到用户在请求被阻止时收到的错误对象中。虽然 Web App Firewall 阻止的大多数请求都是非法的,但即使是正确配置的 Web App Firewall 也会偶尔阻止合法请求,尤其是当您首次部署该请求或对受保护的 Web 站点进行重大更改之后。通过在错误页面中嵌入信息,您可以向用户提供他或她需要提供给技术支持人员的信息,以便修复任何问题。

Web App Firewall 错误页自定义变量包括:

  • ${NS_TRANSACTION_ID}。Web App Firewall 分配给此事务的事务 ID。
  • ${NS_APPFW_SESSION_ID}。Web App Firewall 会话 ID。
  • ${NS_APPFW_VIOLATION_CATEGORY}。冲突的特定 Web App Firewall 安全检查或规则。
  • ${NS_APPFW_VIOLATION_LOG}。与冲突相关联的详细错误消息。

  • ${COOKIE 指定 cookie 的内容。对于<CookieName>,替换您想要在错误页面上显示的特定 cookie 的名称。如果您有多个 Cookie,其内容要显示以进行故障排除,则可以使用此自定义变量的多个实例,每个实例都具有相应的 cookie 名称。 注意:如果您为 Cookie 一致性检查启用了阻止功能,则任何阻止的 Cookie 都不会显示在错误页面上,因为 Web App Firewall 会阻止它们。

要使用这些变量,可以将它们嵌入到错误页面对象的 HTML 或 XML 中,就好像它们是普通的文本字符串一样。向用户显示错误对象时,对于每个自定义变量,Web App Firewall 都会替换变量引用的信息。下面显示了一个使用自定义变量的 HTML 错误页面示例。

<!doctype html public "-//w3c//dtd html 4.0//en">  <html>  <head>  <title>Page Not Accessible</title>  </head>  <body>  <h1>Page Not Accessible</h1>  <p>The page that you accessed is not available. You can:</p>  <ul>  <li>return to the <b><a href="[homePage]">home page</a></b>, re-establish your session, and try again, or,</li>  <li>report this incident to the help desk via <b><a href="mailto:[helpDeskEmailAddress]">email</a></b> or by calling [helpDeskPhoneNumber].</li>  </ul>  <p>If you contact the help desk, please provide the following information:</p>  <table cellpadding=8 width=80%>  <tr><th align="right" width=30%>Transaction ID:</th><td align="left" valign="top" width=70%>${NS_TRANSACTION_ID}</td></tr>  <tr><th align="right" width=30%>Session ID:</th><td align="left" valign="top" width=70%>${NS_APPFW_SESSION_ID}</td></tr>  <tr><th align="right" width=30%>Violation Category:</th><td align="left" valign="top" width=70%>${NS_APPFW_VIOLATION_CATEGORY}</td></tr>  <tr><th align="right" width=30%>Violation Log:</th><td align="left" valign="top" width=70%>${NS_APPFW_VIOLATION_LOG}</td></tr>  <tr><th align="right" width=30%>Cookie Name:</th><td align="left" valign="top" width=70%>${COOKIE("[cookieName]")}</td></tr>  </table>  <body>  <html>

要使用此错误页面,请将其复制到文本或 HTML 编辑器中。将相应的局部信息替换为以下变量,这些变量用方括号括起来,以便将它们与 Citrix ADC 变量区分开来。(保持这些不变。):

  • [homePage]。您网站主页的 URL。
  • [helpDeskEmailAddress]。您希望用户用于报告阻止事件的电子邮件地址。
  • [helpDeskPhoneNumber]。您希望用户拨打以报告阻止事件的电话号码。
  • [cookieName]。要在错误页面上显示其内容的 cookie 的名称。

XML 错误对象

当用户与 XML 页的连接被阻止,或者用户请求不存在的 XML 应用程序时,Web App Firewall 会向用户的浏览器发送基于 XML 的错误响应。您可以通过将基于 XML 的错误页上载到导入窗格中的“XML 错误对象”选项卡上的 Web App Firewall 来配置错误响应。所有 XML 错误响应都托管在 Web App Firewall 上。无法为 XML 应用程序配置重定向 URL。

注意: 您可以在 XML 错误对象中使用与 HTML 错误对象相同的自定义变量。

XML 模式

当 Web App Firewall 对用户的 XML 或 Web 2.0 应用程序请求执行验证检查时,它可以根据该应用程序的 XML 架构或设计类型文档 (DTD) 验证请求,并拒绝任何不遵循该架构或 DTD 的请求。XML 架构和 DTD 都是描述特定类型 XML 文档结构的标准 XML 配置文件。

WSDL

当 Web App Firewall 对用户对基于 XML SOAP 的 Web 服务的请求执行验证检查时,它可以根据该 Web 服务的 Web 服务类型定义 (WSDL) 文件验证请求。WSDL 文件是定义特定 XML SOAP Web 服务元素的标准 XML SOAP 配置文件。

导入