API 参考
Security Scanner MCP 的编程 API。
安装
npm install security-scanner-mcp
核心扫描工具
scanSecrets
检测代码中硬编码的密钥。
import { scanSecrets } from 'security-scanner-mcp';
const code = `
const apiKey = "AIzaSyC1234567890";
const password = "admin123";
`;
const issues = scanSecrets(code);
console.log(issues);
// [
// {
// type: 'Google API Key',
// severity: 'critical',
// message: 'Google API Key is hardcoded',
// fix: 'Use environment variables',
// line: 2,
// match: 'AIza****890',
// owaspCategory: 'A07:2021',
// cweId: 'CWE-798'
// }
// ]
参数:
code: string- 要扫描的源代码- 返回:
SecurityIssue[]
scanInjection
查找 SQL、NoSQL 和命令注入漏洞。
import { scanInjection } from 'security-scanner-mcp';
const code = `
const query = \`SELECT * FROM users WHERE id = \${userId}\`;
exec(\`ping \${host}\`);
`;
const issues = scanInjection(code, 'javascript');
console.log(issues);
// [
// {
// type: 'Template Literal SQL',
// severity: 'high',
// message: 'SQL query uses template literals',
// fix: 'Use prepared statements',
// line: 2
// },
// {
// type: 'Command Injection',
// severity: 'critical',
// message: 'exec() called with user input',
// fix: 'Use execFile with argument array',
// line: 3
// }
// ]
参数:
code: string- 源代码language: string- 'javascript' | 'typescript' | 'python' | 'java' | 'go'- 返回:
SecurityIssue[]
scanXss
识别跨站脚本漏洞。
import { scanXss } from 'security-scanner-mcp';
const code = `
element.innerHTML = userInput;
eval(code);
`;
const issues = scanXss(code, 'javascript');
参数:
code: stringlanguage: string- 返回:
SecurityIssue[]
scanCrypto
检查密码学弱点。
import { scanCrypto } from 'security-scanner-mcp';
const code = `
const hash = crypto.createHash('md5');
const random = Math.random();
`;
const issues = scanCrypto(code, 'javascript');
参数:
code: stringlanguage: string- 返回:
SecurityIssue[]
scanAuth
审计身份验证和会话安全。
import { scanAuth } from 'security-scanner-mcp';
const code = `
res.cookie('session', token);
app.use(cors({ origin: '*' }));
`;
const issues = scanAuth(code, 'javascript');
参数:
code: stringlanguage: string- 返回:
SecurityIssue[]
scanPath
查找路径穿越和文件漏洞。
import { scanPath } from 'security-scanner-mcp';
const code = `
const file = fs.readFileSync(userPath);
fs.rmSync(userDir, { recursive: true });
`;
const issues = scanPath(code, 'javascript');
参数:
code: stringlanguage: string- 返回:
SecurityIssue[]
综合扫描
scanAll
一次运行所有扫描工具。
import { scanAll } from 'security-scanner-mcp';
const code = `/* your code */`;
const language = 'javascript';
const allIssues = scanAll(code, language);
console.log(allIssues.summary);
// {
// total: 10,
// critical: 2,
// high: 3,
// medium: 4,
// low: 1
// }
参数:
code: stringlanguage: string- 返回:
ScanResult
interface ScanResult {
success: boolean;
issues: SecurityIssue[];
summary: {
critical: number;
high: number;
medium: number;
low: number;
};
duration?: number;
linesScanned?: number;
}