# 安全与合规

`szu-cli` 应当像谨慎的本地助手一样使用用户自己的账号。

## 隐私规则

- 不保存密码。
- 不提交 cookies、local storage、session storage、浏览器 profile、HAR、trace 或私人截图。
- 不把浏览器状态上传到第三方服务。
- 示例和 fixture 必须脱敏。
- 缓存数据应保持本地、最小化。

## 允许的自动化

- 低频只读查询。
- 用户主动发起的浏览器会话。
- 解析用户能手动访问的页面。
- 为减少重复加载而进行本地缓存。

## 禁止的自动化

- 绕过验证码。
- 绕过身份认证。
- 绕过 WebVPN。
- 多账号自动化。
- 批量抓取。
- 高频轮询。
- 隐藏表单提交。
- 执行登录用户无法手动完成的操作。
- 批量下载学术数据库中的 PDF、CAJ、原文或附件。
- 构造隐藏全文 URL、绕过供应商控制，或在用户可见按钮之外进行下载自动化。

## 状态变更命令

健身房预约等状态变更功能需要额外保护：

- 支持 `--dry-run`。
- 真实提交前需要明确确认。
- 输出清晰 JSON 审计信息。
- 限制重试次数。
- 不做隐藏的重复尝试。
- 体育场馆预约开发和 smoke 测试默认只允许查询与 `--dry-run`；真实预约或取消必须由用户明确指定单个目标并传入 `--confirm`，不得频繁预约、频繁取消、取消支付或自动支付。

## 开源姿态

公开文档可以描述架构和脱敏示例，但不能发布密钥、私人账号数据或绕过说明。

## 学术数据库边界

CNKI 和万方支持元数据检索，以及单条 `cnki download <url>` / `wanfang download <url>`：打开一个用户提供的详情页，并在 headed 浏览器中点击可见 PDF/全文下载按钮。

CLI 不得绕过验证码、滑块验证、二次认证、付费墙或供应商访问控制。不得实现 PDF、CAJ、原文或附件的批量下载，也不得构造隐藏下载 URL 来绕开正常浏览器控制。
