如何在mssql节点模块中处理SQL注入

在Expressjs项目中,我使用https://www.npmjs.com/package/mssql连接到Microsoft SQL Server并尝试执行存储过程。 根据mssql文档(https://www.npmjs.com/package/mssql#sql-injection)将处理所有SQL注入,我认为它没有发生。

有人可以帮助我如何处理此节点模块中的SQL注入?

var sql = require('mssql');
var dbConfig = {};
var Connection = new sql.Connection(dbConfig);
Connection.connect().then(function(_connection){
    var request = new sql.Request(_connection);
    request.verbose = true;
    request.input('username', 'patriksimek');
    request.input('password', 'delete from dbo.Users where userId =1');
    request.input('attempts', 2);
    request.execute('my_stored_procedure');
})

您正在使用无法注入sql的存储过程。

你不需要做任何事情。

SQL注入是通过向服务器传递一些SQL语句来破解的技术。

例如代码

'SELECT * FROM user WHERE username = ' + username

如果我通过username = 'xxx; DELETE FROM user;' username = 'xxx; DELETE FROM user;' ,那么用户表中的所有记录都将消失

防止SQL注入

  • 使用查询参数化
  • 使用存储过程(您现在使用的)
  • 链接地址: http://www.djcxy.com/p/93831.html

    上一篇: How to handle SQL injection in mssql node module

    下一篇: Hibernate SQL Injection