Citrix ADC

使用案例:如何对使用 Citrix ADC 设备的网站强制使用安全和 HttpOnly Cookie 选项

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

  • HTTpOnly -Cookie 上的此选项会导致网络浏览器仅使用 HTTP 或 HTTPS 协议返回 cookie。非 HTTP 方法(例如 JavaScript 文档 .cookie 引用)无法访问 cookie。此选项有助于防止由于跨站点脚本而导致的 Cookie 被盗。

    注意

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

  • 安全 -Cookie 上的此选项会导致网络浏览器在传输被 SSL 加密时仅返回 cookie 值。此选项可用于防止通过连接窃听窃取 cookie。

注意

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

使用 CLI 配置 Citrix ADC 设备以强制使用现有 HTTP 虚拟服务器的安全和 HttpOnly 标志

  1. 创建重写操作。

    此示例配置为同时设置安全标志和 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=/; 安全”、“path=/; 安全; 安全; httpOnly” 和 “path=/; HTTOnly” 的所有实例替换为 “安全; HTTPOnly; path=/”。如果大小写不匹配,此正则表达式(正则表达式)将失败。

  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 虚拟服务器使用安全和 HttpOnly 标志

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

    配置重写操作

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

    配置重写策略

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

    绑定重写策略

使用案例:如何对使用 Citrix ADC 设备的网站强制使用安全和 HttpOnly Cookie 选项