OpenVAS扫描启动报错400 (Bad Request)问题排查求助
排查OpenVAS扫描启动400错误的步骤
1. 校验前端请求数据
- 打开浏览器开发者工具的Network标签,查看
POST http://localhost:5000/api/scan/start请求的请求体和Content-Type:- 确认Content-Type与后端接口要求匹配(比如后端接收JSON的话,前端要传
application/json) - 检查请求体字段是否完整、拼写正确,比如后端要求
target_ip,前端不能写成targetIP
- 确认Content-Type与后端接口要求匹配(比如后端接收JSON的话,前端要传
- 查看Dashboard.js中发起请求的代码,确认参数构造逻辑是否正确,有没有遗漏必填项(如目标地址、扫描配置ID)
2. 检查后端参数处理逻辑
- 查看scanController.js:
- 确认是否对必填参数做了校验(比如判断目标IP是否为空、格式是否合法)
- 检查400错误的返回内容,后端是否明确返回了错误原因(比如
res.status(400).json({error: '缺少目标IP'}),可在Network的Response中查看)
- 查看index.js:确认是否配置了
express.json()或express.urlencoded(),确保后端能正确解析请求体
3. 验证OpenVAS容器状态与连接
- 执行
docker logs <openvas容器名>查看容器日志,确认OpenVAS服务是否正常启动,有没有认证失败、API接口未就绪的报错 - 检查docker-compose.yml:
- 确认OpenVAS的端口映射、服务名配置正确,后端代码中调用OpenVAS的地址(比如
http://openvas:9392)是否与容器服务名一致 - 确认后端配置的OpenVAS用户名、密码或API密钥正确,拥有启动扫描的权限
- 确认OpenVAS的端口映射、服务名配置正确,后端代码中调用OpenVAS的地址(比如
4. 核对后端路由配置
- 查看scanRoutes.js:确认
/api/scan/start对应的请求方法是POST,没有写成GET或其他方法 - 查看index.js:确认扫描路由已正确挂载(比如
app.use('/api/scan', scanRoutes))
5. 直接测试后端接口
用curl或Postman绕过前端,直接调用后端接口,判断问题出在前端还是后端:
curl -X POST http://localhost:5000/api/scan/start \ -H "Content-Type: application/json" \ -d '{"target": "127.0.0.1", "configId": "daba56c8-73ec-11df-a475-002264764cea"}'
- 如果直接调用仍返回400,说明问题在后端参数校验或OpenVAS连接逻辑
- 如果调用成功,说明前端请求的参数或格式有误
内容的提问来源于stack exchange,提问作者ESTIVEN DE MOYA SUAREZ
相关产品推荐
相关产品推荐

