我有一个功能,可以获取具有偏移和限制的产品 .
function f(offset,limit, callback) {
models.Product.findAll({
offset: offset,limit: limit
}).then(function (products) {
...
}).catch(function (error) {
callback(error, null);
});
}
服务器通过客户端的POST查询获得偏移和限制 . 我应该自己检查限制和偏移值还是sequelize会这样做而不是我?它会捕获'catch'方法中的所有错误吗?
例如,服务器期望值 - 偏移量:0,限制:100,但得到 - 偏移量:-87,限制:'rchk'或某种sql注入 .
我应该在传递之前将此数据传递给findAll或自己检查输入数据吗?
1 回答
Sequelize将为您逃脱(以防止注入攻击)限制和偏移值 . 当一些傻瓜通过
'limit: monkeys'
然后你需要自己进行筛选时,它会想要SequelizeDatabaseError
抛出SequelizeDatabaseError
.如果您正在运行原始查询(使用
Sequelize#query
,那么您希望使用占位符,因为t.niese建议)