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

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

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

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

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

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

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

有不理解可以追问。

如果你忘记了你的MYSQL的root口令的话,你可以通过下面的过程恢复。

1.向mysqldserver发送kill命令关掉mysqldserver(不是kill-9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。

kill`cat/mysql-data-directory/hostname.pid`

你必须是UNIX的root用户或者是你所运行的SERVER上的同等用户,才能执行这个 *** 作。

WIN32下用winmysqladmin.exe关闭服务即可

2.使用`--skip-grant-tables'参数来启动mysqld。

3.使用`mysql-hhostnamemysql'命令登录到mysqldserver,用grant命令改变口令。

也可以用usemysqlupdateusersetpassword=password('yourpass')whereuser='root'

也可以这样做:mysqladmin-hhostname-uuserpassword'newpassword' 

4.载入权限表:mysqladmin-hhostnameflush-privileges,或者使用SQL命令`FLUSHPRIVILEGES'。

当然,在这里,你也可以重启mysqld

我解决了,只是把mysql目录重新命名为mysql-1后,copy至其它mysql数据库服务器中,通过root将mysql-1数据库中的user表的root用户权限改过来再copy回去变为mysql就可以了。:)

数据库编码问题.

你进数据库时使用以下参数试试

mysql --default-character-set=gbk -uroot -p

指定编码试试,应该就行了.

如果gbk不行,换成gb2312试试.

如果你的数据库编码是utf-8的,你用utf-8反而不行,得用gbk的.因为mysql命令行客户端不支持utf-8


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8429127.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存