Libpsl 是一个 C 库,提供了用来根据 Mozilla Public Suffix List 检查域名的功能。这用来验证 Cookie 和证书的 Domain 信息很有用。每个 Web 客户端在处理 Cookie 的时候都应该使用 PSL 数据来确保安全私密性。
示例代码:
#include <stdio.h> #include <libpsl.h> int main(int argc, char **argv) { const char *domain = "www.example.com"; const char *cookie_domain = ".com"; const psl_ctx_t *psl = psl_builtin(); int is_public, is_acceptable; is_public = psl_is_public_suffix(psl, domain); printf("%s %s a public suffix.\n", domain, is_public ? "is" : "is not"); is_acceptable = psl_is_cookie_domain_acceptable(psl, domain, cookie_domain); printf("cookie domain '%s' %s acceptable for domain '%s'.\n", cookie_domain, is_acceptable ? "is" : "is not", domain); return 0; }