ADC

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

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

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

    注意

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

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

注意

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

将 NetScaler 设备配置为使用 CLI 强制为现有 HTTP 虚拟服务器使用 Secure 和 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=/)!)"
    <!--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-->

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

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

    配置重写操作

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

    配置重写策略

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

    绑定重写策略

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