日志安全:严禁记录的敏感信息清单

以下是一份详细的清单,列出了严禁打印在日志中的敏感信息和个人隐私信息内容,并附带了处理建议。

一、核心原则

绝对禁止原则:任何可以唯一识别个人身份或授予资源访问权限的凭证类信息,都不应出现在日志中。


二、具体分类清单

1. 身份认证与凭证类

这是最敏感的一类,一旦泄露,攻击者可以直接冒充用户。

  • 全部密码:用户密码、管理员密码、系统密码。

  • 完整的认证令牌/密钥:如 JWT、OAuth Token、API Keys、Access Key / Secret Key(如AWS AK/SK)。

  • 会话ID:特别是如果会话机制不够安全,会话ID可被用于"会话劫持"。

  • 生物特征数据:指纹、面部识别模板等(这些本身就不应以明文存储在任何地方,包括日志)。

2. 个人身份信息

这些信息可以直接或间接识别到特定个人。

  • 身份证号码、护照号码、驾驶证号码、社保号码等政府颁发的唯一标识。

  • 完整姓名 (在某些严格场景下,可能需要避免。如必须记录,可考虑仅使用姓或名的首字母,如"张*"或"Z*")。

  • 联系信息:完整的住址、个人电话号码、个人邮箱地址。

  • 生物标识信息:出生日期、出生地、性别(组合起来可精准定位个人)。

3. 金融与支付信息

这是犯罪分子最直接的目标。

  • 银行卡信息:完整的卡号、有效期、CVV2/CVC2码。

  • 银行账户信息:银行账号、开户行详细信息。

  • 个人财产信息:收入、信用分数、交易记录、加密货币私钥。

4. 医疗健康信息

属于高度敏感的个人隐私,受到法律法规(如HIPAA)的严格保护。

  • 病历资料、疾病诊断记录、用药记录、体检结果、基因数据。
5. 技术与网络信息

虽然不直接指向个人,但可能被用于发起进一步攻击。

  • 完整的网络路径信息:在某些内部系统中,避免记录完整的服务器IP、端口、内网拓扑信息。

  • 详细的系统错误信息 :对用户展示的错误信息应友好,但日志中可以记录详细的技术错误。关键在于,日志中的技术错误不应包含上述任何敏感数据。例如,数据库错误不应将带有用户参数的SQL语句完整打印。

6. 其他敏感数据
  • 种族、政治观点、宗教信仰、性取向等法律特别保护的个人信息。

  • 企业敏感信息:未公开的商业计划、源代码、内部通信、商业秘密。

  • 法律相关数据:涉及调查、案号等司法信息。


三、安全的日志记录实践建议

仅仅知道"不能记什么"还不够,更需要知道"应该怎么记"。

  1. 脱敏/掩码处理

    这是最常用的技术。对于调试需要但又敏感的数据,只显示部分字符,用星号(*)或其他符号代替大部分内容。

    • 示例

      • 身份证号:11010519******1234-> 只显示前6位和后4位。

      • 银行卡号:622588******1234

      • 手机号:138****1234

      • 邮箱:z***n@example.com

  2. 使用占位符或引用ID

    当需要关联信息时,不要记录数据本身,而是记录一个无法反推原文的唯一ID。

    • 错误示例用户 张三(身份证:110101199001011234) 登录成功。

    • 正确示例用户 (ID: 12345) 登录成功。会话 (SID: abcde-fghij) 已创建。

    • 真正的用户信息"张三"和身份证号存储在安全的数据库中,通过ID 12345可以关联查询。

  3. 使用集中式的秘密管理工具

    对于API密钥、数据库密码等配置信息,绝对不要写在项目的配置文件或代码里然后被日志记录。应使用如 HashiCorp Vault、AWS Secrets Manager、Azure Key Vault​ 等工具动态获取。

  4. 在代码层面进行约束

    • 代码审查:将日志安全作为代码审查的强制性步骤。

    • 静态代码分析工具(SAST):使用工具(如 SonarQube, Checkmarx)扫描代码,建立规则来检测日志中可能存在的敏感信息模式(如身份证、邮箱的正则表达式)。

    • 预定义日志工具 :编写安全的日志包装函数,自动对特定字段(如password, token)进行脱敏。

  5. 日志级别控制

    确保在生产环境中使用 INFOWARN级别,避免使用 DEBUGTRACE级别,因为后者通常会打印出非常多的细节信息,极易泄露敏感数据。

  6. 访问控制和加密

    • 访问权限:严格限制对生产环境日志文件的访问权限,遵循最小权限原则。

    • 日志加密:对存储的日志文件进行加密,特别是在传输和静态存储时。

总结清单(速查表)

严禁记录 **安全记录方式(示例)**​
密码、API密钥、Token 绝不记录。使用[REDACTED]或直接跳过。
身份证、银行卡号 脱敏,如 110105******1234
完整姓名、地址、电话 脱敏,如 张*138****1234,或使用用户ID
会话ID、数据库连接字符串 记录引用ID或哈希值,而非完整值
详细的错误堆栈(含用户输入) 记录错误类型和位置,但过滤掉用户输入的具体参数

**最后,请将"隐私设计"和"安全第一"的理念融入开发和运维的每个环节。**​ 在记录任何信息到日志前,多问一句:"这有必要吗?这安全吗?"

相关推荐
用户962377954486 小时前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机9 小时前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机9 小时前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户9623779544811 小时前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star11 小时前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户9623779544814 小时前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
YuMiao15 小时前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
碳基沙盒2 天前
OpenClaw 多 Agent 配置实战指南
运维
cipher2 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
Sinclair3 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器