Sql server 如何在mssql节点模块中处理SQL注入
在Expressjs项目中,我使用连接到Microsoft SQL Server并尝试执行存储过程。根据Sql server 如何在mssql节点模块中处理SQL注入,sql-server,node.js,express,Sql Server,Node.js,Express,在Expressjs项目中,我使用连接到Microsoft SQL Server并尝试执行存储过程。根据mssql()的文档,它将处理所有我认为不会发生的SQL注入 有人能帮我处理这个节点模块中的SQL注入吗 var sql=require('mssql'); var dbConfig={}; var Connection=newsql.Connection(dbConfig); Connection.connect().then(函数(_Connection){ var request=ne
mssql
()的文档,它将处理所有我认为不会发生的SQL注入
有人能帮我处理这个节点模块中的SQL注入吗
var sql=require('mssql');
var dbConfig={};
var Connection=newsql.Connection(dbConfig);
Connection.connect().then(函数(_Connection){
var request=newsql.request(_连接);
request.verbose=true;
request.input('username','patriksimek');
request.input('password','delete from dbo.Users,其中userId=1');
请求输入('尝试',2);
request.execute('my_storage_procedure');
})
您使用的存储过程不能被sql注入
你不需要做任何事
SQL注入是一种将SQL语句旁路传递到服务器的技术
e、 例如,代码
'SELECT * FROM user WHERE username = ' + username
如果我通过username='xxx;从用户中删除;'代码>,则用户表中的所有记录都将消失
防止SQL注入
使用查询参数化
使用存储过程(您现在正在使用的)
发布生成和执行SQL命令的代码。您使用的是字符串连接还是参数?请使用准备好的语句var ps=new sql.PreparedStatement(connection)
@Dai,,我已经更新了上面的代码。@SwarajGiri,PreparedStatement为带空格的字符串抛出错误。示例“hello word”