设置Cookie分析器 API

API ID 14204

检查每个重定向跳转和JSON中网站设置的cookie,查看缺失的Secure/HttpOnly/SameSite标志和RFC违规情况,来自CI或脚本。每个cookie都报告其属性,Host-/

API 文档

端点

请求
获取URL 并逐跳跟随最多5个重定向 并分析每个跳点的每个Set-Cookie头部 结果缓存6小时 fresh参数绕过缓存 没有方案的值如example.com被视为https
Endpoint ID: 35259
GET https://zylalabs.com/api/14204/set-cookie+analyzer+api/35259/analyze+the+set-cookie+headers+of+a+url
输入参数

剩余免费测试请求:3 / 3。


输入参数

此端点不需要任何输入参数。

API 示例响应
JSON
{
    "url": "https://github.com/",
    "finalUrl": "https://github.com/",
    "statusCode": 200,
    "redirectChain": [
        {
            "url": "https://github.com/",
            "statusCode": 200,
            "cookieCount": 3
        }
    ],
    "cookieCount": 3,
    "grade": "A+",
    "score": 99,
    "summary": {
        "errors": 0,
        "warnings": 0,
        "infos": 3
    },
    "cookies": [
        {
            "name": "_gh_sess",
            "valueLength": 354,
            "valuePreview": "55D…",
            "attributes": {
                "domain": null,
                "path": "/",
                "expires": null,
                "maxAge": null,
                "secure": true,
                "httpOnly": true,
                "sameSite": "Lax",
                "partitioned": false,
                "priority": null
            },
            "prefix": null,
            "lifetime": {
                "type": "session",
                "seconds": null,
                "source": null
            },
            "deletion": false,
            "sizeBytes": 362,
            "issues": [],
            "score": 100,
            "grade": "A+",
            "setBy": {
                "hop": 1,
                "url": "https://github.com/",
                "statusCode": 200
            }
        },
        {
            "name": "_octo",
            "valueLength": 27,
            "valuePreview": "GH1…",
            "attributes": {
                "domain": ".github.com",
                "path": "/",
                "expires": "2027-10-12T16:56:41.000Z",
                "maxAge": null,
                "secure": true,
                "httpOnly": false,
                "sameSite": "Lax",
                "partitioned": false,
                "priority": null
            },
            "prefix": null,
            "lifetime": {
                "type": "persistent",
                "seconds": 31536000,
                "source": "expires"
            },
            "deletion": false,
            "sizeBytes": 32,
            "issues": [
                {
                    "severity": "info",
                    "code": "domain_leading_dot",
                    "message": "A leading dot in Domain is ignored by modern browsers (RFC 6265 section 5.2.3); it can be removed."
                },
                {
                    "severity": "info",
                    "code": "httponly_missing",
                    "message": "The cookie has no HttpOnly attribute, so scripts can read it. Fine if JavaScript needs it; otherwise add HttpOnly."
                }
            ],
            "score": 98,
            "grade": "A+",
            "setBy": {
                "hop": 1,
                "url": "https://github.com/",
                "statusCode": 200
            }
        },
        {
            "name": "logged_in",
            "valueLength": 2,
            "valuePreview": "…",
            "attributes": {
                "domain": ".github.com",
                "path": "/",
                "expires": "2027-10-12T16:56:41.000Z",
                "maxAge": null,
                "secure": true,
                "httpOnly": true,
                "sameSite": "Lax",
                "partitioned": false,
                "priority": null
            },
            "prefix": null,
            "lifetime": {
                "type": "persistent",
                "seconds": 31536000,
                "source": "expires"
            },
            "deletion": false,
            "sizeBytes": 11,
            "issues": [
                {
                    "severity": "info",
                    "code": "domain_leading_dot",
                    "message": "A leading dot in Domain is ignored by modern browsers (RFC 6265 section 5.2.3); it can be removed."
                }
            ],
            "score": 99,
            "grade": "A+",
            "setBy": {
                "hop": 1,
                "url": "https://github.com/",
                "statusCode": 200
            }
        }
    ],
    "cached": false,
    "checkedAt": "2026-10-12T16:56:41.406Z"
}
分析URL的Set-Cookie头部 — 代码片段

curl --location --request GET 'https://zylalabs.com/api/14204/set-cookie+analyzer+api/35259/analyze+the+set-cookie+headers+of+a+url' --header 'Authorization: Bearer YOUR_API_KEY' 


    
请求
解析您提供的 Set-Cookie 头部,并不发出外部请求。提供原始头部块,每行一个 Set-Cookie,其他头部行将被忽略,或者将 setCookie 设置为数组。最多支持 50 个 cookie,每个 8 KB。
Endpoint ID: 35260
POST https://zylalabs.com/api/14204/set-cookie+analyzer+api/35260/analyze+pasted+set-cookie+header+text+offline
输入参数

离线分析粘贴的Set-Cookie头文本 — 端点功能

对象 描述
请求体 必需 Json

剩余免费测试请求:3 / 3。


输入参数

API 示例响应
JSON
{
    "cookieCount": 3,
    "grade": "D",
    "score": 66,
    "summary": {
        "errors": 2,
        "warnings": 4,
        "infos": 5
    },
    "assumptions": {
        "https": true,
        "host": null,
        "note": "Parsed offline. Secure checks assume the cookie was served over HTTPS (set \"https\": false to change); Domain checks run only when \"host\" is given."
    },
    "cookies": [
        {
            "name": "__Host-id",
            "valueLength": 1,
            "valuePreview": "…",
            "attributes": {
                "domain": "a.com",
                "path": null,
                "expires": null,
                "maxAge": null,
                "secure": false,
                "httpOnly": false,
                "sameSite": null,
                "partitioned": false,
                "priority": null
            },
            "prefix": "__Host-",
            "lifetime": {
                "type": "session",
                "seconds": null,
                "source": null
            },
            "deletion": false,
            "sizeBytes": 10,
            "issues": [
                {
                    "severity": "error",
                    "code": "host_prefix_violation",
                    "message": "A __Host- cookie requires the Secure attribute, Path=/, no Domain attribute (RFC 6265bis section 4.1.3.2); browsers reject it otherwise."
                },
                {
                    "severity": "warning",
                    "code": "secure_missing",
                    "message": "The cookie has no Secure attribute although it was served over HTTPS, so browsers may also send it over plain HTTP."
                },
                {
                    "severity": "info",
                    "code": "httponly_missing",
                    "message": "The cookie has no HttpOnly attribute, so scripts can read it. Fine if JavaScript needs it; otherwise add HttpOnly."
                },
                {
                    "severity": "info",
                    "code": "samesite_missing",
                    "message": "No SameSite attribute: browsers default to Lax (Chrome, Edge, Firefox in some modes). State the intent explicitly with SameSite=Lax, Strict or None."
                }
            ],
            "score": 63,
            "grade": "D"
        },
        {
            "name": "s",
            "valueLength": 1,
            "valuePreview": "…",
            "attributes": {
                "domain": null,
                "path": null,
                "expires": null,
                "maxAge": null,
                "secure": false,
                "httpOnly": false,
                "sameSite": "None",
                "partitioned": false,
                "priority": null
            },
            "prefix": null,
            "lifetime": {
                "type": "session",
                "seconds": null,
                "source": null
            },
            "deletion": false,
            "sizeBytes": 2,
            "issues": [
                {
                    "severity": "error",
                    "code": "samesite_none_requires_secure",
                    "message": "SameSite=None requires the Secure attribute; Chrome, Firefox and Safari reject the cookie otherwise (RFC 6265bis section 4.1.2.7)."
                },
                {
                    "severity": "warning",
                    "code": "secure_missing",
                    "message": "The cookie has no Secure attribute although it was served over HTTPS, so browsers may also send it over plain HTTP."
                },
                {
                    "severity": "info",
                    "code": "httponly_missing",
                    "message": "The cookie has no HttpOnly attribute, so scripts can read it. Fine if JavaScript needs it; otherwise add HttpOnly."
                }
            ],
            "score": 64,
            "grade": "D"
        },
        {
            "name": "t",
            "valueLength": 1,
            "valuePreview": "…",
            "attributes": {
                "domain": null,
                "path": null,
                "expires": null,
                "maxAge": 99999999,
                "secure": false,
                "httpOnly": false,
                "sameSite": null,
                "partitioned": false,
                "priority": null
            },
            "prefix": null,
            "lifetime": {
                "type": "persistent",
                "seconds": 99999999,
                "source": "max-age"
            },
            "deletion": false,
            "sizeBytes": 2,
            "issues": [
                {
                    "severity": "warning",
                    "code": "lifetime_exceeds_400_days",
                    "message": "The lifetime is about 1157 days; Chrome caps cookie lifetime at 400 days (RFC 6265bis section 5.5), so it will be truncated."
                },
                {
                    "severity": "warning",
                    "code": "secure_missing",
                    "message": "The cookie has no Secure attribute although it was served over HTTPS, so browsers may also send it over plain HTTP."
                },
                {
                    "severity": "info",
                    "code": "httponly_missing",
                    "message": "The cookie has no HttpOnly attribute, so scripts can read it. Fine if JavaScript needs it; otherwise add HttpOnly."
                },
                {
                    "severity": "info",
                    "code": "samesite_missing",
                    "message": "No SameSite attribute: browsers default to Lax (Chrome, Edge, Firefox in some modes). State the intent explicitly with SameSite=Lax, Strict or None."
                }
            ],
            "score": 78,
            "grade": "C"
        }
    ],
    "checkedAt": "2026-10-12T16:57:50.219Z"
}
离线分析粘贴的Set-Cookie头文本 — 代码片段

curl --location --request POST 'https://zylalabs.com/api/14204/set-cookie+analyzer+api/35260/analyze+pasted+set-cookie+header+text+offline' --header 'Authorization: Bearer YOUR_API_KEY' 

--data-raw '{"headers":"Set-Cookie: __Host-id=1; Domain=a.com\nSet-Cookie: s=1; SameSite=None\nSet-Cookie: t=1; Max-Age=99999999"}'

    

API 访问密钥和身份验证

注册后,每个开发者都会被分配一个个人 API 访问密钥,这是一个唯一的字母和数字组合,用于访问我们的 API 端点。要使用 设置Cookie分析器 API 进行身份验证,只需在 Authorization 标头中包含您的 bearer token。

标头
标头 描述
授权 必需 应为 Bearer access_key. 订阅后,请查看上方的"您的 API 访问密钥"。

无长期承诺。随时升级、降级或取消。 免费试用包括最多 50 个请求。

起价
$10,000/年


  • 自定义数量
  • 自定义速率限制
  • 专业客户支持
  • 实时 API 监控

概览

检查网站设置的cookie,按重定向跳转和JSON格式,查找缺少的Secure/HttpOnly/SameSite标志和RFC违规情况,来自CI或脚本。每个cookie都报告其属性、__Host-/__Secure-前缀规则、生命周期和大小,响应中包含编码问题以及一个总体等级(A+到F)和满分100的得分。检查基于RFC 6265和RFC 6265bis草案(SameSite=None需要Secure,前缀要求,400天生命周期限制,4096字节限制)以及常见最佳实践,例如标记缺少HttpOnly的类似会话的cookie名称。等级和得分使用我们自己的公式;它们仅描述cookie属性,并不是对网站的安全审计或cookie同意或隐私法合规的检查。重定向按照跳转一跳一跳地跟踪(最多5跳),并分析每跳的cookie。完整的cookie值永远不会返回:只有值长度和一个简短的掩码值预览(最多前3个字符)。第二个端点解析您粘贴的Set-Cookie头文本,离线,无需外部请求。结果反映我们的服务器发出的单个匿名GET;由JavaScript设置的cookie或仅在登录或同意后设置的cookie将不可见,而阻止数据中心流量的网站可能会超时或显示更少的cookie。/v1/analyze的结果每个URL缓存6小时;添加fresh=1以绕过缓存。私有网络目标会被拒绝

设置Cookie分析器 API FAQs

GET端点返回一个包含cookie分析结果的JSON对象,包括最终URL、状态代码、重定向链、cookie数量、等级、分数和详细的cookie属性 POST端点返回类似的数据,但重点关注提供的Set-Cookie头,包括错误、警告和cookie属性

关键字段包括 `url` `finalUrl` `statusCode` `cookieCount` `grade` `score` 和 `cookies` 每个 cookie 对象包含属性如 `name` `valueLength` `valuePreview` 和标志如 `secure` `httpOnly` 和 `sameSite`

返回的数据是JSON格式 结构包含一个顶级对象和一个Cookie对象数组 每个对象详细描述属性和合规问题 例如 `cookies` 数组包含单个Cookie的详细信息如 `name` `valueLength` 和 `attributes`

GET端点提供cookie属性、合规评级和重定向分析 POST端点提供关于提供的Set-Cookie头的见解,包括与cookie属性和合规标准相关的错误和警告

响应数据被组织为一个包含摘要信息的主对象和一个数组的cookie 每个cookie对象包括其属性和合规状态 使用户能够轻松评估cookie的安全性和符合标准情况

数据来自在分析指定URL或提供的Set-Cookie头时接收到的HTTP响应。API遵循RFC 6265和最佳实践来评估cookie属性和合规性

典型的用例包括审计Web应用程序的cookie安全性 确保遵守cookie标准 以及识别cookie配置中的潜在漏洞 开发人员可以将此分析集成到CI/CD管道中以进行自动检查

用户可以通过在 GET 端点中指定 `fresh` 参数来自定义请求,以绕过缓存结果。在 POST 端点中,用户可以以各种格式提供自定义 Set-Cookie 头,从而允许对特定 Cookie 进行定制分析

一般常见问题

Zyla API Hub 就像一个大型 API 商店,您可以在一个地方找到数千个 API。我们还为所有 API 提供专门支持和实时监控。注册后,您可以选择要使用的 API。请记住,每个 API 都需要自己的订阅。但如果您订阅多个 API,您将为所有这些 API 使用相同的密钥,使事情变得更简单。
价格以 USD(美元)、EUR(欧元)、CAD(加元)、AUD(澳元)和 GBP(英镑)列出。我们接受所有主要的借记卡和信用卡。我们的支付系统使用最新的安全技术,由 Stripe 提供支持,Stripe 是世界上最可靠的支付公司之一。如果您在使用卡片付款时遇到任何问题,请通过 [email protected]

此外,如果您已经以这些货币中的任何一种(USD、EUR、CAD、AUD、GBP)拥有有效订阅,该货币将保留用于后续订阅。只要您没有任何有效订阅,您可以随时更改货币。
定价页面上显示的本地货币基于您 IP 地址的国家/地区,仅供参考。实际价格以 USD(美元)为单位。当您付款时,即使您在我们的网站上看到以本地货币显示的等值金额,您的卡片对账单上也会以美元显示费用。这意味着您不能直接使用本地货币付款。
有时,银行可能会因其欺诈保护设置而拒绝收费。我们建议您首先联系您的银行,检查他们是否阻止了我们的收费。此外,您可以访问账单门户并更改关联的卡片以进行付款。如果这些方法不起作用并且您需要进一步帮助,请通过 [email protected]
价格由月度或年度订阅决定,具体取决于所选计划。
API 调用根据成功请求从您的计划中扣除。每个计划都包含您每月可以进行的特定数量的调用。只有成功的调用(由状态 200 响应指示)才会计入您的总数。这确保失败或不完整的请求不会影响您的月度配额。
Zyla API Hub 采用月度订阅系统。您的计费周期将从您购买付费计划的那一天开始,并在下个月的同一日期续订。因此,如果您想避免未来的费用,请提前取消订阅。
要升级您当前的订阅计划,只需转到 API 的定价页面并选择您要升级到的计划。升级将立即生效,让您立即享受新计划的功能。请注意,您之前计划中的任何剩余调用都不会转移到新计划,因此在升级时请注意这一点。您将被收取新计划的全部金额。
要检查您本月剩余多少 API 调用,请参考响应标头中的 "X-Zyla-API-Calls-Monthly-Remaining" 字段。例如,如果您的计划允许每月 1,000 个请求,而您已使用 100 个,则响应标头中的此字段将显示 900 个剩余调用。
要查看您的计划允许的最大 API 请求数,请检查 "X-Zyla-RateLimit-Limit" 响应标头。例如,如果您的计划包括每月 1,000 个请求,此标头将显示 1,000。
"X-Zyla-RateLimit-Reset" 标头显示您的速率限制重置之前的秒数。这告诉您何时您的请求计数将重新开始。例如,如果它显示 3,600,则意味着还有 3,600 秒直到限制重置。
是的,您可以随时通过访问您的账户并在账单页面上选择取消选项来取消您的计划。请注意,升级、降级和取消会立即生效。此外,取消后,您将不再有权访问该服务,即使您的配额中还有剩余调用。
为了让您有机会在没有任何承诺的情况下体验我们的 API,我们提供 7 天免费试用,允许您免费进行最多 50 次 API 调用。此试用只能使用一次,因此我们建议将其应用于您最感兴趣的 API。虽然我们的大多数 API 都提供免费试用,但有些可能不提供。试用在 7 天后或您进行了 50 次请求后结束,以先发生者为准。如果您在试用期间达到 50 次请求限制,您需要"开始您的付费计划"以继续发出请求。您可以在个人资料中的订阅 -> 选择您订阅的 API -> 定价标签下找到"开始您的付费计划"按钮。或者,如果您在第 7 天之前不取消订阅,您的免费试用将结束,您的计划将自动计费,授予您访问计划中指定的所有 API 调用的权限。请记住这一点以避免不必要的费用。
7 天后,您将被收取试用期间订阅的计划的全额费用。因此,在试用期结束前取消很重要。因忘记及时取消而提出的退款请求不被接受。
当您订阅 API 免费试用时,您可以进行最多 50 次 API 调用。如果您希望超出此限制进行额外的 API 调用,API 将提示您执行"开始您的付费计划"。您可以在个人资料中的订阅 -> 选择您订阅的 API -> 定价标签下找到"开始您的付费计划"按钮。
付款订单在每月 20 日至 30 日之间处理。如果您在 20 日之前提交请求,您的付款将在此时间范围内处理。
您可以通过我们的聊天渠道联系我们以获得即时帮助。我们始终在线,时间为上午 8 点至下午 5 点(EST)。如果您在该时间之后联系我们,我们将尽快回复您。此外,您可以通过 [email protected]

相关 API