首页主机资讯Postman在Ubuntu上如何保护API安全

Postman在Ubuntu上如何保护API安全

时间2025-12-12 08:31:04发布访客分类主机资讯浏览918
导读:在 Ubuntu 上使用 Postman 保护 API 的安全实践 一 传输与客户端基础安全 强制使用 HTTPS/TLS,禁止在生产环境使用 HTTP;在 Postman 的 Tests 中加入断言,确保所有请求都走 HTTPS,例如:...

在 Ubuntu 上使用 Postman 保护 API 的安全实践

一 传输与客户端基础安全

  • 强制使用 HTTPS/TLS,禁止在生产环境使用 HTTP;在 Postman 的 Tests 中加入断言,确保所有请求都走 HTTPS,例如:
    pm.test("Response over HTTPS", function () {
        
        pm.expect(pm.request.url.protocol).to.equal('https');
    
    }
        );
    
    
  • 管理 Cookies:在 Postman 的 Cookies 管理器中为对应域名查看、添加、编辑或删除 Cookie,避免跨站请求伪造与会话劫持。
  • 配置 客户端证书(mTLS):在 Postman 顶部菜单 Settings → Certificates → Add Certificate,填写 Host(仅域名,不含协议和端口),选择 CRT/KEY 文件,如有 Passphrase 一并填写。之后向该域名发起 HTTPS 请求时会自动携带客户端证书,用于服务端双向认证。

二 认证与授权机制

  • 使用 OAuth 2.0 获取 Access Token(常见为 JWT),在 Postman 的 Authorization 选项卡选择 OAuth 2.0,按流程配置 Client ID/Secret、回调地址、授权类型(如 Authorization Code + PKCEClient Credentials),获取并保存 access_token,在后续请求的 Header 中使用:
    Authorization: Bearer {
    {
    access_token}
    }
        
    
  • 使用 JWT 时,确保服务端设置强签名算法(如 HS256/RS256)、合理 expiss/aud 校验,并在 Postman 中以变量安全引用令牌,避免硬编码与泄露。
  • 如采用 Basic Auth,仅通过变量引用用户名与密码,避免明文出现在脚本或历史记录中;Postman 会在请求头中以 Base64 编码发送,但更推荐 OAuth 2.0/JWT 替代长期静态凭证。

三 请求级安全控制与自动化

  • 使用 HMAC 签名防篡改与防重放:在 Pre-request Script 生成 timestampnonce,按服务端约定拼接字符串并计算 HMAC-SHA256,将结果写入环境变量供请求使用:
    const CryptoJS = require('crypto-js');
        
    
    const phone   = '18211101111';
        
    const optCode = 'testfan';
        
    const salt    = 'your_salt';
        
    const ts      = Date.now().toString();
        
    const nonce   = Math.random().toString(36).substr(2, 8);
        
    
    const signStr = phone + optCode + salt + ts + nonce;
        
    const sign    = CryptoJS.HmacSHA256(signStr, salt).toString(CryptoJS.enc.Hex);
        
    
    pm.environment.set('phone', phone);
        
    pm.environment.set('optCode', optCode);
        
    pm.environment.set('timestamp', ts);
        
    pm.environment.set('nonce', nonce);
        
    pm.environment.set('sign', sign);
    
    
    请求体或查询参数中使用占位符:{ { phone} } { { timestamp} } { { nonce} } { { sign} }
  • 对敏感参数进行 加密:在 Pre-request Script 中调用 CryptoJSAES 加密,或使用 forge.js 实现 RSA 加密,将密文写入变量后在请求中使用占位符,避免明文出现在请求体或日志中。
  • 自动化 Token 管理:登录后将响应中的 access_token 写入环境变量,供后续请求统一引用:
    const jsonData = pm.response.json();
        
    const token = jsonData.access_token || jsonData.token || jsonData.meassage;
        
    pm.environment.set('access_token', token);
    
    
  • 避免 Cookie 依赖 的长期会话:优先使用 短生命周期的 Bearer/JWT,必要时结合 刷新令牌 机制,降低被盗用风险。

四 安全测试与持续验证

  • 在 Postman 中系统化开展安全测试:
    • 输入验证:构造 SQL 注入XSS 等测试用例,验证过滤与响应处理是否安全。
    • 错误处理:检查 4xx/5xx 响应是否泄露堆栈、数据库结构、密钥等敏感信息。
    • 加密与协议:确保所有请求使用 HTTPS/TLS,并验证 TLS 版本与证书链;必要时在 Pre-request Script 中设置 TLS 1.2+
    • 自动化断言示例:
      // 仅允许 TLS 1.2+
      pm.test("TLS 1.2+", function () {
          
          pm.expect(pm.request.tlsVersion).to.be.at.least('TLSv1.2');
      
      }
          );
      
      
      // 错误响应不含敏感信息
      pm.test("No sensitive info in error", function () {
          
          if (pm.response.code >
      = 400) {
          
              const body = pm.response.text();
          
              pm.expect(body).to.not.include('password');
          
              pm.expect(body).to.not.include('secret');
          
              pm.expect(body).to.not.include('stacktrace');
      
          }
      
      }
          );
          
      
    将安全测试用例纳入 Collection RunnerNewman,在 CI/CD 中持续运行,形成闭环。

五 本地环境安全与操作建议

  • Ubuntu 上安装与运行 Postman 时,优先使用 Snap 官方包(沙箱隔离更强):
    sudo apt update
    sudo apt install snapd
    sudo snap install postman
    
  • 若手动安装,注意将程序目录放入 /opt,并通过符号链接或桌面文件注册启动器,便于统一权限与更新管理。
  • 统一使用 环境变量/环境 管理密钥与令牌,避免提交到版本控制;定期轮换 Access TokenClient SecretAPI Key,并限制令牌作用域与有效期。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Postman在Ubuntu上如何保护API安全
本文地址: https://pptw.com/jishu/770160.html
如何用Ubuntu Postman进行数据驱动测试 Debian ulimit对后台进程有何限制

游客 回复需填写必要信息