如何减少SQL注入漏洞攻击?

如何减少SQL注入漏洞攻击?,sql,security,sql-injection,Sql,Security,Sql Injection,如何使下面的代码不易受到SQL注入攻击?并且能够接受参数中的“和”字符 app.get('/addStudent',(req,res) => { const {fname, lname, othname, bloodType}= req.query; let sqlstmt = "INSERT INTO `students` (`fname`, `lname`, `othname`, `bloodtype`) VALUES ('"+fname+"', '"+lname+"', '

如何使下面的代码不易受到SQL注入攻击?并且能够接受参数中的“和”字符

app.get('/addStudent',(req,res) => {
  const {fname, lname, othname, bloodType}= req.query;

  let sqlstmt = "INSERT INTO `students` (`fname`, `lname`, `othname`, `bloodtype`) VALUES ('"+fname+"', '"+lname+"', '"+othname+"', '"+bloodType+"')"
    db.query(sqlstmt,(err,result) => {
    if(err){console.log('Error occured while fetching user information',err)}
    console.log(result);
    res.send(result);
  });
});

您应该使用准备好的语句,这些语句应该由所选DBMS的驱动程序包支持


MySQL的一个示例:

是的,但更重要的是,使用查询参数。仅从字符串连接形成的字符串中执行预处理语句并不能神奇地使其安全。如何使用查询参数和预处理语句修改上述代码?