Pet*_*ter 6 sql-server sql-injection node.js
我正在研究 Node 的 MSSQL 模块中内置的 SQL 注入保护:
https://www.npmjs.com/package/mssql#injection
但我并没有完全理解他们如何清理查询值的示例。我猜想该request.input('myval', sql.VarChar, '-- commented')语句会针对被注释掉的查询的其余部分清理“myvar”。
如果我还想对其他东西进行消毒怎么办?比如drop table语句等。
有人可以帮我吗?
刚刚弄清楚如何工作。接受来自mssql 文档request.input()的以下三个参数:
input(name, [type], value) 向请求添加输入参数。
论据
name - 不带@char的输入参数的名称。
type - 输入参数的 SQL 数据类型。如果省略 type,模块会根据 JS 数据类型自动决定使用哪种 SQL 数据类型。
value - 输入参数值。未定义的 ans NaN 值会自动转换为空值。
所以你使用它的方式如下;
let id= 123456
const stmt = 'SELECT * FROM Users WHRE User=@userId'
request.input('userId', sql.Int, id);
request.query(stmt)
Run Code Online (Sandbox Code Playgroud)
注意:
id是保存我的值的变量,用作 中的第三个参数request.input(name, type, value)。userId只是我为将在 sql 语句中使用的变量指定的名称@userId。在 中request.input(),id值被分配给userIdsql 语句中。sql.Int只是一个数据类型,将用于验证进入的日期userId。您可以通过在同一文件中导入 sql 来使用它:const sql = require('mssql')| 归档时间: |
|
| 查看次数: |
3157 次 |
| 最近记录: |