
毕业5年我拿什么回报给我5年的北漂——遇见更好的自己
15733
01.21
课程名称: 新版 Node.js+Express+Koa2 开发Web Server博客
课程章节: 9-1 开始和sql注入
课程讲师: 双越
课程内容:
补充:
当前登录代码sql如下
const sql = `
select username, realname from users where username='${username}' and password='${password}'
`;
并没有对sql注入做处理,就会在登录时发生如下情况:
当在用户名输入 zhangsan' --
时,密码随意输入也能登录的情况,原因是 – 在sql 中是注释的意思,表示注释后面sql,所以我们上面sql就会变成下面的样子:
select username, realname from users
where username='zhangsan' --' and password='1'
后面的密码就被注释掉了,也就是说不用写密码,就能登录当前账号。
处理
使用mysql 提供的方法 escape()
const mysql = require("mysql");
username = mysql.escape(username);
password = mysql.escape(password);
const sql = `
select username, realname from users where username=${username} and password=${password}
`;
这样就可以防止 sql 注入,要在每一个sql语句中写 escape 方法
课程收获:
共同学习,写下你的评论
作者其他优质文章
毕业5年我拿什么回报给我5年的北漂——遇见更好的自己
程序员必备基础知识:通信协议——Http、TCP、UDP
史上最全Html和CSS布局技巧
Vue.js 快速入门
65条最常用正则表达式,你要的都在这里了
工作中的程序员如何进阶
如何面试前端工程师:Github很重要
程序员应该知道的13个设计技巧
每个程序员都会的35个jQuery小技巧!
举报
,,