ADC

用例:如何对使用 Citrix ADC 设备的 Web 站点强制使用 Secure 和 HttpOnly cookie 选项

Web 管理员可以强制使用 Secure 或 HttpOnly,或者同时使用会话 ID 上的标志以及 Web 应用程序生成的身份验证 cookie。可以通过使用 HTTP 负载平衡虚拟服务器来修改 Set-cookie 标头以包含这两个选项,然后在 Citrix ADC 设备上重写策略。

  • HttpOnly - cookie 上的这一选项会导致 Web 浏览器仅使用 HTTP 或 HTTPS 协议返回 cookie。JavaScript document.cookie 引用等非 HTTP 方法无法访问该 cookie。此选项有助于防止因跨站点脚本而导致的 cookie 被盗。

    注意

    当 Web 应用程序需要使用客户端脚本(例如 JavaScript 或客户端 Java 小程序)访问 cookie 内容时,您无法使用 HttpOnly 选项。可以使用本文档中提到的方法仅重写服务器生成的 cookie,而不重写 Citrix ADC 设备生成的 cookie。例如,AppFirewall、持久性、VPN 会话 cookie 等。

  • Secure - 当传输通过 SSL 加密时,cookie 上的这一选项会导致 Web 浏览器仅返回 cookie 值。此选项可用于防止通过连接窃听来盗用 cookie。

注意

以下过程不适用于 VPN 虚拟服务器。

使用 CLI 将 Citrix ADC 设备配置为对现有 HTTP 虚拟服务器强制使用 Secure 和 HttpOnly 标志

  1. 创建重写操作。

    此示例配置为同时设置 Secure 和 HttpOnly 标志。如果缺少任何一个标志,请根据需要对其他组合进行修改。

    add rewrite action act_cookie_Secure replace_all http.RES.full_Header ""Secure; HttpOnly; path=/"" -search "regex(re!(path=/\\; Secure; HttpOnly)|(path=/\\; Secure)|(path=/\\; HttpOnly)|(path=/)!)" -bypassSafetyCheck YES
    <!--NeedCopy-->
    

    此策略将“path=/”、“path=/; Secure”、“path=/; Secure; HttpOnly”和“path=/; HttpOnly”的所有实例替换为“Secure; HttpOnly; path=/”。如果大小写不匹配,此正则表达式 (regex) 将失败。

  2. 创建一个重写策略以触发操作。

    add rewrite policy rw_force_secure_cookie "http.RES.HEADER("Set-Cookie").EXISTS" act_cookie_Secure
    <!--NeedCopy-->
    
  3. 将该重写策略绑定到要保护的虚拟服务器。如果使用 Secure 选项,则必须使用 SSL 虚拟服务器。

    bind lb vserver mySSLVServer -policyName rw_force_secure_cookie -priority 100 -gotoPriorityExpression NEXT -type RESPONSE
    <!--NeedCopy-->
    

示例:

以下示例显示了设置 httpOnly 标志之前的 cookie

Set-Cookie: CtxsAuthId=C5614491; path=/Citrix/ProdWeb
<!--NeedCopy-->

以下示例显示了设置 httpOnly 标志后的 cookie

Set-Cookie: CtxsAuthId=C5614491; Secure; HttpOnly; path=/Citrix/ProdWeb/
<!--NeedCopy-->

使用 GUI 将 Citrix ADC 设备配置为对现有 HTTP 虚拟服务器强制使用 Secure 和 HttpOnly 标志

  1. 导航到 AppExpert > Rewrite(重写)> Actions(操作),然后单击 Add(添加)以添加新的重写操作。

    配置重写操作

  2. 导航到 AppExpert > Rewrite(重写)> Policies(策略),然后单击 Add(添加)以添加新的重写策略。

    配置重写策略

  3. 导航到 Traffic Management(流量管理)> Load Balancing(负载平衡)> Virtual Servers(虚拟服务器),然后将重写(响应)策略绑定到相应的 SSL 虚拟服务器。

    绑定重写策略

用例:如何对使用 Citrix ADC 设备的 Web 站点强制使用 Secure 和 HttpOnly cookie 选项