菜鸟教程中的nodejs连接mysql数据库教程存在sql注入问题吗?

JavaScript017

菜鸟教程中的nodejs连接mysql数据库教程存在sql注入问题吗?,第1张

是否有漏洞与代码有关,与此无关

其中主流的连接MySQL的方式是用mysql或者mysql2包,它们只是提供了调用驱动的api。很多框架中包括egg,nest都是基于此封装的。

但这不是SQL注入的关键,它只是一种连接方式。它只管连接,不管其他的,存不存在SQL注入完全靠写代码的人本身啊。

一句脚本本没有问题(知道不让直接放sql的,也是放注入),但是你如果让SQL变成由用户输入拼接而成,那就存在SQL注入的风险。

你应该去了解SQL注入的原理,然后进行防患,百度就能找到,然后可以用ORM,一般都对输入做了处理,还能避免直接写SQL(但其实难的地方还得自己写)。

有不理解可以追问。

我知道 ie 怎么连接,别的浏览器不行。首先先去mysql官网下载个 odbc 然后安装,安装完再去控制面板找到“管理工具”--》“(ODBC)数据源”--》(如果是在自己电脑上测试就选

“用户DSN”,如果想被别人访问就选“系统DSN”) 然后添加mysqlodbc,然后把驱动的名字记下来(不是你起的名字,是后面自带的名字!),准备工作做完,我们就可以通过代码访问数据库了。(注:我第一次安装ODBC,用js调用时提示我未知数据源一类的话,卸载ODBC后再次安装ODBC就正常了) 用 ie 先调用odbc驱动 然后操作mysql,话不多说,上代码!

//创建数据库连接对象

var conn = new ActiveXObject("ADODB.Connection")

//创建数据集对象

var rs = new ActiveXObject("ADODB.Recordset")

try{

//MySQL ODBC 5.3 ANSI Driver这个就是我刚才说让你记得驱动的名字

var connectionstring = "Driver={MySQL ODBC 5.3 ANSI Driver}Server=127.0.0.1User=rootPassword=rootDatabase=mysqlOption=3Port=3306"

console.log(connectionstring)

//打开连接

conn.open(connectionstring)

//查询语句

var sql = " select * from table1 "

//打开数据集(即执行查询语句)

rs.open(sql,conn)

//(或者rs=conn.execute(sql))

//遍历所有记录

while(!rs.eof){

//WScript是Windows 的脚本宿主对象,详细情况请在windows帮助里查找。

//WScript.Echo输出记录的内容

document.write(rs.Fields("id") + "\t" + rs.Fields("name") + "\n")

//下一条记录

rs.moveNext()

}

//关闭记录集

rs.close()

//关闭数据库连接

conn.close()

} catch(e){

//异常报告

document.write(e.message)

} finally{

//

}