热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

好神奇的sql注入,不用密码就可登录账号(nodejs怎么预防sql注入)

sql注入是啥,它的攻击方式和预防措施简单来说就是用sql语句来到达自己的目的不管是攻击还是窃取什么的,接下来看例子可以只知道账号(用户名),不用密码就可以登录:对于一些没有预防s

sql注入是啥,它的攻击方式和预防措施
《好神奇的sql注入,不用密码就可登录账号(nodejs怎么预防sql注入)》

简单来说就是用sql语句来到达自己的目的不管是攻击还是窃取什么的,接下来看例子

可以只知道账号(用户名),不用密码就可以登录:

对于一些没有预防sql注入的网站,假如你的用户名是lisi ,正常登录是输入用户名之后再输入密码。如果输入用户名为

lisi' --

就可以不用密码就可以登录了

原理就是因为你后台的sql语句是下面这样的,他已经把你的密码注释了

select * from users
where username='zhangsan' -- 'and password='123';

设置有更严重的

select * from users
where username='zhangsan'delete from users; -- 'and password='123';

这样可以把这张表的用户信息都删除掉所以很危险

这样你还可以用其他sql语句进行增删改查,数据库的表信息基本已经暴露

怎么应对SQL注入

应对的话就很简单,node中有一个函数对你的用户名调用一下,再稍微改一下的你生气了语句。如下

const mysql = require('mysql')
username = escape(username)
password = escape(password)
const sql = ` select username, realname from users where username=${ username} and password=${ password} `
//将${username} ${password}的分号去除

改正之后,你在用之前的方式登录就登不进去了,而且你的后台的sql语句就变成下面这样了:
《好神奇的sql注入,不用密码就可登录账号(nodejs怎么预防sql注入)》
说明这个函数对其进行了转义,使其执行不了

注:菜鸟的学习笔记,如有错误,感谢评论纠正,如有侵权,立即删除


推荐阅读
  • ABP框架是ASP.NET Boilerplate的简称,它不仅是一个开源且文档丰富的应用程序框架,还提供了一套基于领域驱动设计(DDD)的最佳实践架构模型。本文将详细介绍ABP框架的特点、项目结构及其在Web API优先架构中的应用。 ... [详细]
  • 本文介绍了 Oracle SQL 中的集合运算、子查询、数据处理、表的创建与管理等内容。包括查询部门号为10和20的员工信息、使用集合运算、子查询的注意事项、数据插入与删除、表的创建与修改等。 ... [详细]
  • 在运行于MS SQL Server 2005的.NET 2.0 Web应用中,我偶尔会遇到令人头疼的SQL死锁问题。过去,我们主要通过调整查询来解决这些问题,但这既耗时又不可靠。我希望能找到一种确定性的查询模式,确保从设计上彻底避免SQL死锁。 ... [详细]
  • 图数据库与传统数仓实现联邦查询使用CYPHER实现从关系数据库过滤时间序列指标一、MySQL得到研报实体在Oracle中的唯一ID二、Oracle中过滤时间序列数据三、CYPHER ... [详细]
  • 如何将两个具有相同主键的Excel表格合并
    本文介绍如何将两个具有相同主键的Excel表格进行合并,通过左连接的方式将表2的数据插入到表1中。具体步骤包括在表1中添加新的列、使用VLOOKUP函数进行数据匹配,以及通过SQL语句实现数据库中的表连接。 ... [详细]
  • 周排行与月排行榜开发总结
    本文详细介绍了如何在PHP中实现周排行和月排行榜的开发,包括数据库设计、数据记录和查询方法。涉及的知识点包括MySQL的GROUP BY、WEEK和MONTH函数。 ... [详细]
  • 如何在不同数据库中提取前N%的记录
    本文详细介绍了如何在SQL Server、Oracle和MySQL等不同数据库中提取前N%的记录。通过具体的示例和代码,帮助读者理解和掌握这些方法。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • 理解GiST索引的空间构造原理
    通过空间思维解析GiST索引的构建方式及其在空间数据检索中的应用。 ... [详细]
  • 2023年最新指南:如何在PHP中屏蔽警告和错误
    本文详细介绍了如何在PHP中屏蔽警告和错误,包括多种方法和最佳实践,帮助开发者提升代码质量和安全性。 ... [详细]
  • Java毕业设计项目:“传情旧物”网站(含源码与数据库)
    本项目介绍了如何配置和运行“传情旧物”网站,包括所需的技术栈、环境配置以及具体的操作步骤。 ... [详细]
  • 本文为初学者提供了一条清晰的学习路线,帮助他们逐步成长为优秀的Web开发人员。通过十个关键步骤,涵盖从基础到高级的各个方面,确保每位学习者都能找到适合自己的学习方向。 ... [详细]
  • 阿里面试题解析:分库分表后的无限扩容瓶颈与解决方案
    本文探讨了在分布式系统中,分库分表后的无限扩容问题及其解决方案。通过分析不同阶段的服务架构演变,提出了单元化作为解决数据库连接数过多的有效方法。 ... [详细]
  • WPF项目学习.一
    WPF项目搭建版权声明:本文为博主初学经验,未经博主允许不得转载。一、前言记录在学习与制作WPF过程中遇到的解决方案。使用MVVM的优点是数据和视图分离,双向绑定,低耦合,可重用行 ... [详细]
author-avatar
大师傅放放风_769
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有