gpt4 book ai didi

mysql - 向Mysql插入数据哪种方式更好、更安全?使用 Node 进行 SQL 操作?

转载 作者:行者123 更新时间:2023-11-29 09:27:00 25 4
gpt4 key购买 nike

我在我的项目中使用 Nodejs 和 Express。您认为哪种方式存储数据更好?我使用两种方法来存储数据,但我不确定哪一种更好、更安全。

第一种方法:

var insertQuery = "INSERT INTO mytable (value1,value2) values (?, ?)";
con.query(insertQuery, [value1,value2],(err, rows) => { //Some Code here })

但是我听说必须使用SQL变量来防止SQL注入(inject),实际上我不确定这是否正确?

第二种方法:

var values = " @v1 :='"+value1"' , @v2 :='"+value2"'";
var insertQuery = "INSERT INTO mytable (value1,value2) values (" + values +")";
con.query(insertQuery, (err,rows)=>{ //Some Code here })

那你觉得怎么样?

最佳答案

对于你的问题 - 第一种方法更好,因为它使用准备好的语句,这意味着至少你的输入将被转义,但有很多情况你需要防止,其中一些:

  1. 验证用户输入
  2. 正确编码所有符号,这就是注入(inject)成为可能的原因

如果你不想使用任何 ORM,我建议你使用 knex ,它可以作为 sql builder/builder + runner/builder+runner+mapper 工作。如果你真的有兴趣如何构建自己的sql构建器,你可以阅读它的源代码。

关于mysql - 向Mysql插入数据哪种方式更好、更安全?使用 Node 进行 SQL 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59417583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com