Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在mssql节点模块中处理SQL注入_Sql Server_Node.js_Express - Fatal编程技术网

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

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

在Expressjs项目中,我使用连接到Microsoft SQL Server并尝试执行存储过程。根据
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”