保护API密钥和用户数据
// 安全存储API密钥
// 1. 使用环境变量
const apiKey = process.env.API_KEY;
// 2. 使用密钥管理服务
import { SecretManagerServiceClient } from '@google-cloud/secret-manager';
const client = new SecretManagerServiceClient();
const [secret] = await client.accessSecretVersion({
name: 'projects/PROJECT_ID/secrets/api-key/versions/latest',
});
// 3. 输入验证和清理
function sanitizeInput(input) {
// 移除潜在的注入攻击
return input.replace(/<script[^>]*>.*?</script>/gi, '')
.replace(/[<>]/g, '')
.trim();
}
// 4. 实施速率限制
const rateLimit = require('express-rate-limit');
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15分钟
max: 100 // 限制100个请求
});
app.use('/api/', limiter);5分钟内完成接入
遵循推荐的开发模式
获取专业帮助