温馨提示×

centos环境postman如何加密

小樊
42
2025-12-17 09:10:54
栏目: 网络安全

CentOS 上 Postman 的加密实践

一 传输层加密与基础安全

  • 确保所有 API 请求都通过 HTTPS 发起,避免明文传输;在 Postman 的 Settings → Proxy 中按需配置代理;将 API Key、密码 等敏感信息放入 环境变量,避免在脚本或请求中硬编码;按需开启 SSL 证书校验;同时 定期更新 Postman 以获取安全补丁。

二 请求内容加密 使用内置 CryptoJS

  • 思路:在请求的 Pre-request Script 中对请求体或字段进行加密,把密文放入变量,再在请求中使用;在 Tests 中对响应进行解密或校验。Postman 内置 CryptoJS,可直接使用 AES、Base64、MD5、SHA 等算法。
  • 示例 1 对称加密 AES(CBC 模式,推荐)
    • 预先在环境变量中设置:key(16 字节)iv(16 字节)、待加密的 plainText
    • Pre-request Script:
      // 从环境变量读取
      const key = CryptoJS.enc.Utf8.parse(pm.environment.get("key"));   // 16 字节
      const iv  = CryptoJS.enc.Utf8.parse(pm.environment.get("iv"));    // 16 字节
      const data = pm.environment.get("plainText");
      
      // 加密:CBC + PKCS7
      const encrypted = CryptoJS.AES.encrypt(data, key, { iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
      pm.environment.set("cipherText", encrypted.toString());
      
    • 在请求体(raw JSON)中使用:
      {
        "username": "alice",
        "payload": "{{cipherText}}"
      }
      
    • 如需在 Tests 中查看明文(示例):
      const ct = pm.response.json().payload;
      const pt = CryptoJS.AES.decrypt(ct, key, { iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
      pm.test("decrypted ok", () => {
        pm.expect(pt.toString(CryptoJS.enc.Utf8)).to.eql(pm.environment.get("plainText"));
      });
      
  • 示例 2 对称加密 AES(ECB 模式,示例)
    const key = CryptoJS.enc.Utf8.parse(pm.environment.get("key")); // 16 字节
    const data = pm.environment.get("plainText");
    const encrypted = CryptoJS.AES.encrypt(data, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
    pm.environment.set("cipherText", encrypted.toString());
    
  • 示例 3 哈希与编码(不可逆或仅编码)
    // Base64 编码
    const b64 = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse("admin"));
    pm.environment.set("b64", b64);
    
    // MD5(不可逆)
    const md5 = CryptoJS.MD5("admin").toString().toUpperCase();
    pm.environment.set("md5", md5);
    
    以上示例基于 Postman 内置 CryptoJS 的常见用法,可按需选择 AES/ECB/CBC、Base64、MD5/SHA 等组合。

三 数据静态加密与备份

  • 本地数据目录(包含缓存、历史、Cookie 等)建议纳入 磁盘/目录级加密(如 LUKS、eCryptfs)或存放在已加密的家目录中;对导出的 集合与环境 JSON 文件,使用 GPG 等工具进行加密归档,示例:
    # 导出集合/环境 JSON(在 Postman 界面操作)
    gpg --symmetric --cipher-algo AES256 postman_collection.json
    gpg --symmetric --cipher-algo AES256 postman_environment.json
    
  • 自动化备份(示例思路,使用 cron)
    # 每天 02:00 导出并用 GPG 加密
    0 2 * * * /usr/bin/postman export data --path /opt/backups/postman_$(date +\%F).json && \
      gpg --symmetric --cipher-algo AES256 /opt/backups/postman_$(date +\%F).json && \
      rm -f /opt/backups/postman_$(date +\%F).json
    
    说明:Postman 桌面版提供数据导出能力;在 Linux 上可通过定时任务执行导出命令并配合 GPG 完成加密归档,确保静态数据安全与可审计恢复。

四 权限与运行安全

  • 安装目录与可执行文件权限最小化:仅对 Postman 可执行文件授予执行权限,例如:
    sudo chmod +x /opt/Postman/Postman
    
  • 如使用 Snap 安装,权限由 Snap 管理;如需命令行启动或创建快捷方式,可配置软链接或 .desktop 文件,并确保执行权限与路径正确。

0