可通过五种方法为safari设置跨站跟踪白名单:一、macos网站设置中允许特定网站所有cookie;二、ios/ipados设置中关闭该网站的跨网站跟踪阻止;三、开发者工具中禁用当前页面itp;四、配置描述文件部署企业级域名白名单;五、修改hosts文件实现子域归一化。

如果您希望 Safari 浏览器在全局阻止跨站跟踪的同时,允许某个特定网站(如银行、企业内网或内部工具)正常进行跨域资源加载与身份验证,则需通过白名单机制解除对该站点的限制。以下是实现该目标的多种独立操作路径:
一、在 macOS Safari 中为单个网站禁用跨站跟踪限制
此方法通过“网站设置”为指定域名临时豁免 ITP 限制,仅影响该网站的第三方 Cookie 读写行为,不改变全局策略,适用于需要维持 SSO 登录或嵌入式服务集成的场景。
1、在 Mac 上打开 Safari 浏览器,访问您希望设为白名单的目标网站(例如 https://intranet.company.com)。
2、点击智能搜索栏右侧的护盾图标,打开当前网站的隐私控制面板。
3、在“Cookie 和网站数据”区域中,点击“详细信息”链接。
4、在弹出窗口中找到该网站条目,点击右侧的“编辑”按钮。
5、勾选允许所有 Cookie选项,并确认保存更改。
二、在 iOS/iPadOS 中为特定网站关闭跟踪拦截
该操作通过系统级网站数据权限管理,使 Safari 在访问指定域名时跳过智能防跟踪(ITP)对第三方脚本和 Cookie 的主动清理逻辑,保留其跨域通信能力。
1、在 iPhone 或 iPad 上打开“设置”应用。
2、向下滚动并点击“Safari 浏览器”选项。
3、点击“网站数据”进入已存储数据列表。
4、在顶部搜索框中输入目标网站的完整域名(例如 company-auth.net)。
5、在搜索结果中点击该域名条目,进入详情页。
6、关闭阻止跨网站跟踪开关,使其变为灰色未启用状态。
三、通过 Safari 开发者工具禁用当前页面的 ITP 行为
此方式适用于调试阶段,利用 Web Inspector 的运行时覆盖功能,强制禁用当前标签页的跨站跟踪防护,不影响其他页面或持久化设置。
1、在 Mac 上启用 Safari 开发者菜单:点击“Safari 浏览器”>“设置”>“高级”,勾选“在菜单栏中显示‘开发’菜单”。
2、访问目标网站后,点击顶部菜单栏中的“开发”>“显示 Web 检查器”。
3、在 Web 检查器中切换至“设置”标签页(齿轮图标)。
4、在“实验性功能”区域,找到Disable Intelligent Tracking Prevention for this page选项并启用。
5、刷新当前页面,ITP 对该页面的所有拦截逻辑将被绕过。
四、使用配置描述文件部署企业级白名单策略
适用于 macOS 管理环境,通过 MDM 或手动安装的 .mobileconfig 文件,在系统层级为 Safari 预置受信域名列表,自动豁免其跨站跟踪限制,无需用户干预。
1、创建符合 Apple Mobileconfig Schema 的 XML 描述文件,包含 PayloadType 为 com.apple.safari 的子项。
2、在 PayloadContent 中添加 AllowedTrackingDomains 数组,填入需白名单化的域名(如 ["auth.corp.internal", "api.payments.example"])。
3、将描述文件双击安装至 macOS 设备,或通过 MDM 推送至受管设备。
4、重启 Safari 浏览器,访问列表中任一域名时,其第三方 Cookie 与脚本将不受 ITP 限制。
五、修改本地 hosts 文件配合 DNS 层面域名归一化
当目标网站依赖多个子域协同工作(如 login.example.com + api.example.com + cdn.example.com),可通过 hosts 绑定将全部子域解析至同一主域,使 Safari 将其识别为第一方上下文,自然规避跨站跟踪判定。
1、打开终端,执行 sudo nano /etc/hosts 并输入管理员密码。
2、在文件末尾新增一行:127.0.0.1 login.example.com api.example.com cdn.example.com。
3、按 Control+O 保存,Control+X 退出编辑器。
4、执行 sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder 刷新 DNS 缓存。
5、重启 Safari,重新访问该网站群组,所有请求将被视为同源,ITP 不再介入。









