在 Express 中使用 express-validator 进行输入消毒

您已经了解了如何验证从外部世界进入 Express 应用程序的输入。 当您运行面向公众的服务器时,您会很快明白一件事:永远不要相信输入。 即使您使用客户端代码对输入进行了消毒和确保人们无法输入奇怪的东西,您仍然可能受到人们使用工具(甚至仅仅是浏览器开发工具)直接POST到您的端点的影响。 或者机器人尝试使用人类已知的每种攻击方式的组合。 您需要做的是对输入进行消毒。 您已经使用的express-validator包 也可以方便地用于执行消毒操作。 假设您有一个POST端点接受name、email和age参数: const express = require('express') const app = express() app.use(express.json()) app.post('/form', (req, res) => { const name = req.body.name const email = req.body.email const age = req.body.age }) 您可以使用以下方式进行验证: const express = require('express') const app = express() app.use(express.json()) app.post('/form', [ check('name').isLength({ min: 3 }), check('email').isEmail(), check('age').isNumeric() ], (req, res) => { const name = req.body.name const email = req.body.email const age = req....