如何在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注入