人人都会AI编程

4.6.2 代码数据安全注意事项

更新时间:2026-06-29

代码中处理数据时如果不加防范,很容易成为漏洞的源头。下面这些事项直击日常开发中的痛点,简单、真实、管用。

  • 密钥、口令等敏感信息绝不硬编码

数据库密码、API 密钥、加密盐值等绝不能明文写在代码或配置文件里提交到仓库。应通过环境变量、secret 管理服务或配置中心注入,即使只是内部工具也要遵守。

  • 所有外部输入都是“毒药”

用户表单、URL 参数、Header、上传文件、接口返回数据……一律要做校验和净化。

  • 数据库查询使用参数化查询或 ORM,严禁拼接 SQL。
  • 避免直接使用 evalexecsystem 拼接用户输入,防止命令注入。
  • 对展示回前端的数据做输出编码,例如 HTML 实体化,防止 XSS。
  • 日志和异常不要“泄密”

打印日志时剔除密码、Token、身份证号等;生产环境严禁向用户展示原始异常堆栈,统一使用友好的错误页面,防止暴露框架版本、内部路径等信息。

  • 数据在哪儿都得“遮一下”
  • 传输必须 HTTPS,内部服务间也可用 mTLS。
  • 落地数据库时,敏感字段(如手机号、邮箱)最好加密存储或做不可逆哈希掩码。日志、备份文件同理。
  • 需要使用真实数据才能测试?那就用脱敏/合成数据,别把生产库直接拷给开发机。
  • 权限最小化,用完即弃

应用连数据库的账号只给 SELECT、INSERT 等必要权限,绝不直接给 root;临时 Token、签名链接设短有效期并限制使用次数。

  • 文件上传要严防死守
  • 限制文件类型(用白名单,不要信任 Content-Type)、大小。
  • 重命名文件,保存到非执行目录,不用用户提供的文件名直接落地。
  • 图片/文档可以额外做病毒扫描或降维处理。
  • 依赖库也是“内鬼”的可能入口

定期跑 npm auditpip checkdependency‑check 等工具扫描已知漏洞;不用来源不明的包,锁定版本,稳妥升级。

  • 顺手做好 CSRF、CORS 防护

状态改变操作(POST/PUT/DELETE)务必携带 CSRF Token 或采用 SameSite Cookie;跨域配置不要图省事写成 Access‑Control‑Allow‑Origin: *,精确到业务域名。

以上都是写代码时随手就能做到的“小事”,但任何一项的疏忽都可能造成真实的安全事故。安全习惯要融进每一次 commit