gpt4 book ai didi

sql-server - Node MSSQL - 如何使用内置的 SQL 注入(inject)保护

转载 作者:行者123 更新时间:2023-12-04 13:04:49 26 4
gpt4 key购买 nike

我正在查看 Node 的 MSSQL 模块中的内置 SQL 注入(inject)保护:

https://www.npmjs.com/package/mssql#injection

但是我并没有完全了解他们如何为我的查询清理值的示例。我猜 request.input('myval', sql.VarChar, '-- commented')语句针对被注释掉的查询的其余部分清理“myvar”。

如果我还想对其他东西进行 sanitizer 怎么办?如删除表语句等。

有人可以帮我吗?

最佳答案

刚刚想出如何工作。 request.input()mssql docs 接受下面描述的三个参数:

input (name, [type], value) Add an input parameter to the request.

Arguments

name - Name of the input parameter without @ char.

type - SQL data type of input parameter. If you omit type, module automatically decide which SQL data type should be used based on JS data type.

value - Input parameter value. undefined ans NaN values are automatically converted to null values.



所以你使用它的方式如下;
let id= 123456
const stmt = 'SELECT * FROM Users WHRE User=@userId'
request.input('userId', sql.Int, id);
request.query(stmt)

注意:
  • id 是保存我的值的变量,用作 request.input(name, type, value) 中的第三个参数。
  • userId 只是我为将在使用 @userId 的 sql 语句中使用的变量指定的名称。在 request.input() 中,将 id 值赋给 sql 语句中的 userId
  • 最后 sql.Int 只是一种数据类型,用于验证进入 userId 的日期。您可以通过在同一文件中导入 sql 来使用它:const sql = require('mssql')
  • 关于sql-server - Node MSSQL - 如何使用内置的 SQL 注入(inject)保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36840439/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com