Cookies Zabbix通过逗号而不是分号连接Cookie

Cookies Zabbix通过逗号而不是分号连接Cookie,cookies,zabbix,Cookies,Zabbix,我们在Zabbix Web场景设置方面有一点问题,请您提供帮助。我们将Zabbix的web场景配置为在我们的eshop上检查将产品添加到购物车中的情况 下面是一个场景 1) Zabbix致电eshop.com/checkout/cart/add/product_id/XXX 2) E-shop创建一个会话,将产品XXX添加到购物车中,并返回重定向到eshop.com/checkout/cart的“Set Cookie:frontend=YYY”,以便在下一个请求中标识会话 3) Zabbix在重

我们在Zabbix Web场景设置方面有一点问题,请您提供帮助。我们将Zabbix的web场景配置为在我们的eshop上检查将产品添加到购物车中的情况

下面是一个场景

1) Zabbix致电eshop.com/checkout/cart/add/product_id/XXX

2) E-shop创建一个会话,将产品XXX添加到购物车中,并返回重定向到eshop.com/checkout/cart的“Set Cookie:frontend=YYY”,以便在下一个请求中标识会话

3) Zabbix在重定向到eshop.com/checkout/cart后使用“Cookie:frontend=YYY”

4) Eshop返回购物车页面的HTML

5) Zabbix检查购物车的HTML并说“是,产品已添加”或“否,产品未添加”

就这些。不幸的是,如果Eshop收到一个没有“Cookie”的请求,然后将用户重定向到一个页面“You is disabled Cookie.This site need Cookie”,这会中断步骤2。不明飞行物。我们通过在web场景的设置中添加cookie“some\u cookie\u to\u avoid\u no\u cookie\u页面”来解决这个问题(参见屏幕截图)

乍一看效果不错,但有一个陷阱。在步骤3中,zabbix将来自Eshop的cookie与来自场景设置的cookie连接起来,并使用逗号(,)而不是(;)作为分隔符。因此,Zabbix发送

Cookie: frontend=YYY, some_cookie_to_avoid_no_cookie_page=1
,但Eshop预计

Cookie: frontend=YYY; some_cookie_to_avoid_no_cookie_page=1
由于此分隔符,Eshop无法正确识别cookie“frontend”,因此它将找不到会话并将空购物车的HTML返回给Zabbix。这就是问题所在

目前,我们从场景设置中删除了“一些要避免的cookie页面”,并禁用了重定向到“您已禁用cookie。此站点需要cookie”,但这只是我们的一种折衷。我的问题是:有更好的解决方案吗?例如:

  • 告诉Zabbix通过“;”加入cookies
  • 告诉Zabbix仅在没有其他cookie的情况下发送“some_cookie_to_avoid_no_cookie_page”(不幸的是,步骤1至5是原子步骤,我们无法向Zabbix发送“some_cookie_to_avoid_no_cookie_page”仅在步骤2中-可能将场景分为两个步骤1-2和3-5,但需要记住cookie前端-这是可能的吗
  • 其他解决方案
非常感谢。Jirka Ch.

根据第9页,服务器应接受逗号作为cookie分隔符:

注意:为了向后兼容,Cookie头中的分隔符在任何地方都是分号(;)。服务器还应接受逗号(,)作为Cookie值之间的分隔符,以便将来兼容


尽管RFC已经有20年的历史了,但仍有一些服务器只支持分号。考虑为Zabbix创建一个针对cookie分隔符的特征请求。

RFC 2109已经被其他各种规范取代,包括后者不包括关于向后兼容性的注释,因此发送。使用逗号分隔Cookie将被视为不正确。我遇到了相同的问题,并为此记录了一个问题:。