【备战春招】第7天 新版 Node.js+Express+Koa2 开发Web Server博客 9-1
2023/2/15 3:24:05
本文主要是介绍【备战春招】第7天 新版 Node.js+Express+Koa2 开发Web Server博客 9-1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称: 新版 Node.js+Express+Koa2 开发Web Server博客
课程章节: 9-1 开始和sql注入
课程讲师: 双越
课程内容:
安全
- sql注入:窃取数据库内容
- xss攻击:窃取前端的 cookie 内容
- 密码加密:保障用户信息安全(重要)
补充:
- server端攻击防水非常多,预防手段也非常多
- 本课只讲解常见的、能通过 web server(nodejs)层面预防的
- 有些攻击需要硬件和服务来支持(需要 OP 服务器运维人员支持),如DDOS
sql注入:
- 最原始、最简单的攻击,从有了 web2.0 就有了 sql 注入攻击
- 攻击方式:输入一个 sql 片段,最终拼接成一段攻击代码
- 预防措施:使用 mysql 的 escape 函数处理输入内容即可
代码演示
当前登录代码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 方法
课程收获:
- 了解sql注入是什么
- 明白如何处理 sql 注入
这篇关于【备战春招】第7天 新版 Node.js+Express+Koa2 开发Web Server博客 9-1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15Vue教程:新手入门与初级技巧详解
- 2024-11-15Vue3教程:新手入门全面指南
- 2024-11-15Vue3教程:新手入门与基础实践
- 2024-11-15Vue教程:初学者必备的Vue.js入门指南
- 2024-11-15基于JSON的大型语言模型代理与Ollama及LangChain的应用
- 2024-11-15useCallback教程:React Hook入门与实践
- 2024-11-15React中使用useContext开发:初学者指南
- 2024-11-15拖拽排序js案例详解:新手入门教程
- 2024-11-15React中的自定义Hooks案例详解
- 2024-11-14受控组件项目实战:从零开始打造你的第一个React项目