ADC

导入

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

HTML 错误对象

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

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

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

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>
<!--NeedCopy-->

要使用此错误页面,请将其复制到文本或 HTML 编辑器中。用相应的本地信息替换以下变量,这些变量用方括号括起来以区别于 NetScaler 变量。(保持不变。):

  • [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 配置文件,它定义了特定 XML SOAP Web 服务的元素。

API 规范导入对象

API 规范定义了 API 的设计,包括端点、方法、参数和数据格式。导入 API 规范功能允许您导入开放 API 规范,该规范通常用于描述 REST API。 当 Web App Firewall 对用户对基于 API 的 Web 服务的请求进行验证检查时,它会根据该 Web 服务的 API 规范文件中指定的架构对请求进行验证。 NetScaler 支持对 REST API 进行架构验证,有效负载为应用程序 JSON,对于 gRPC API 请求 ProtoBuf。

NetScaler 支持以下规范格式:

  • Open API-Swagger 2.0、OAS 3.0,3.1
  • ProtoBuf-v3 和 v2
导入