iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Node+mysql怎么实现SQL注入
  • 832
分享到

Node+mysql怎么实现SQL注入

2023-07-04 14:07:22 832人浏览 泡泡鱼
摘要

这篇文章主要介绍“node+mysql怎么实现sql注入”,在日常操作中,相信很多人在Node+Mysql怎么实现SQL注入问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Node+mysql怎么实现SQL注入

这篇文章主要介绍“node+mysql怎么实现sql注入”,在日常操作中,相信很多人在Node+Mysql怎么实现SQL注入问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Node+mysql怎么实现SQL注入”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

虽然现在不会直接使用 原生NodeJS 的方式开发后台,但了解一下 SQL注入 还是很有必要的。

本文使用 nodejs + MySQLSQL注入 进行讲解。

SQL注入攻击 是很古老的攻击方式了,自从 WEB2.0 诞生后就有 SQL注入攻击。它通常出现在 输入框文本域前端组件中。在输入的内容里加入 SQL语句 ,并一同传给后台。

后台一不小心就会将前端传过来的 SQL语句 拼接到自己的 SQL语句 中,最终拼接成一段攻击代码。

所以必须加以预防,不然有可能出现数据泄露,甚至被删库等可能。

SQL 注入演示

以登录为例,我在 MySQL 中添加一个 users 表,里面存储用户名和密码。

users 表中,我创建了一条数据:insert into users (username, passWord, realname) values ('leihou', '123', '雷猴');

数据的意思是:

  • username: 'leihou'

  • password: '123'

  • realname: '雷猴'

此时,在 Nodejs 后台,我创建了一个登录方法

const mysql = require('mysql')// 创建连接对象const con = mysql.createConnection({    host: 'localhost', // 地址    user: 'root', // 连接数据库的用户    password: '123456', // 连接数据库的密码    port: '3306', // 默认端口    database: 'testdb' // 数据库名})// 开始连接con.connect()// 统一执行 sql 的函数function exec(sql) {  const promise = new Promise((resolve, reject) => {    con.query(sql, (err, result) => {      if (err) {        reject(err)        return      }      resolve(result)    })  })  return promise}// 登录方法const login = (username, password) => {  const sql = `    select username, realname from users where username='${username}' and password='${password}';  `  console.log(sql)  return exec(sql).then(rows => {    return rows[0] || {}  })}

上面是登录方法。

最后可以通过 《NodeJS Http请求》 里提到的方法创建一个接口给前端。由于接口部分不是本文重点,所以这里打算略过(让我偷懒吧)。

此时再创建一个 html 页面,大概生成一下内容,然后使用 ajax后端对接。

如果你懒的话可以直接使用 postman 测试

根据上面的 登录方法 可以得知,前端输入以下内容就可以登录成功

  • 用户名:leihou

  • 密码:123

但如果此时,用户名输入的是 leihou' -- ,注意 -- 前后都有空格。那密码就可以随便输入了。

最后拼接出来的 SQL 语句是 select username, realname from users where username='leihou' -- ' and password='aslkfjsaf';

注意,密码我是随便输入的。

MySQL 里, -- 代表注释的意思。所以上面的语句就变成 查询 username 为 leihou 的那条数据 。自然就绕过了密码。

上面输入的 username 的内容绕过登录,泄露了信息。但如果别人要删掉你的表,那后果就非常严重了。

比如在用户名输入框内输入:leihou'; delete from users; --

直接就把 users 表给删掉了。

防止方法

SQL注入攻击 实在太古老了,有十几年历史了。所以基本的应对方法都成熟了。

比如将前端传过来的字符串进行转码。

使用 NodeJS 下载的 MySQL 依赖包里就提供了这个方法:escape

// 省略部分代码const mysql = require('mysql')// 省略创建连接对象// 省略开始连接// 统一执行 sql 的函数 exec 方法const escape = mysql.escapeconst login = (username, password) => {  username = escape(username)  password = escape(password)  const sql = `    select username, realname from users where username=${username} and password=${password};  `  console.log(sql)  return exec(sql).then(rows => {    return rows[0] || {}  })}

使用 escape 方法过滤后的字符串会被转义。

此时如果用户名输入 leihou' -- ,在后端控制台会打印出如下内容:

select username, realname from users where username='leihou\' -- ' and password='123345';

可以看到 leihou' 后面的单引号被转义了。

到此,关于“Node+mysql怎么实现SQL注入”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: Node+mysql怎么实现SQL注入

本文链接: https://www.lsjlt.com/news/345819.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Node+mysql怎么实现SQL注入
    这篇文章主要介绍“Node+mysql怎么实现SQL注入”,在日常操作中,相信很多人在Node+mysql怎么实现SQL注入问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Node+mysql怎么实现SQL注入...
    99+
    2023-07-04
  • node-mysql中怎么防止SQL注入
    node-mysql中怎么防止SQL注入,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。SQL注入简介SQL注入是比较常见的网络...
    99+
    2024-04-02
  • 一文讲解Node+mysql对SQL注入
    虽然现在不会直接使用 原生NodeJS 的方式开发后台,但了解一下 SQL注入 还是很有必要的。本文使用 NodeJS + MySQL 对 SQL注入 进行讲解。SQL注入攻击 是很古老的攻击方式了,自从 web2.0 诞生后就有 SQL注...
    99+
    2022-11-22
    Node.js 后端
  • 怎么实现SQL注入
    今天就跟大家聊聊有关怎么实现SQL注入,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。什么是SQL注入SQL注入是指通过构建特殊的输入篡改原来的SQL语句达到攻击者所需的操作。Sql ...
    99+
    2023-06-15
  • 怎么实现SQL注入Trick
    这期内容当中小编将会给大家带来有关怎么实现SQL注入Trick,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。between and 操作符代替比较符操作符 BETWEEN...
    99+
    2024-04-02
  • SQL注入之盲注怎么实现
    这篇文章主要介绍“SQL注入之盲注怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SQL注入之盲注怎么实现”文章能帮助大家解决问题。sql注入——盲注1.回顾...
    99+
    2024-04-02
  • node如何预防sql注入
    node预防sql注入的方法:使用mysql.format()转义参数,例如:var userId = 1;var sql = "SELECT * FROM WHERE = ";var inserts = ['users...
    99+
    2024-04-02
  • express.js如何做mysql注入与node-mysql中防止SQL注入方法解析
    大家都知道SQL注入对于网站或者服务器来讲都是一个非常危险的问题,如果这一方面没处理好的话网站可能随时给注入了,所以这篇文章就给大家总结了node-mysql中防止SQL注入的几种常...
    99+
    2023-05-18
    express mysql 防注入 SQL 注入 node-mysql
  • mysql怎么防止sql注入
    要防止SQL注入,可以采取以下措施:1. 使用参数化查询或预编译语句:通过将用户输入的值作为参数传递给查询语句,而不是将其直接拼接到...
    99+
    2023-08-23
    mysql sql
  • sql参数化怎么实现防注入
    sql参数化实现防注入的示例:构造execute参数列表,让模块自动去拼装查询字符串,可防止SQL注入现象发生,代码:# 安全方式find_name = input("请输入您要查询商品的名称:")# 构造参数列表params = [fin...
    99+
    2024-04-02
  • MyBatis中怎么实现SQL注入攻击
    MyBatis中怎么实现SQL注入攻击,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、模糊查询Select * from&nbs...
    99+
    2023-06-20
  • sql注入如何实现脱库
    sql注入实现脱库的方法:借助Navicat for MySQL软件实现,下载并安装运行。打开Navicat for MySQL,点击连接,输入数据库相关信息进行连接,例如数据库ip地址,端口号,用户及密码等。当使用Navicat连接上数据...
    99+
    2024-04-02
  • sql注入怎么插入语句
    sql注入中插入语句的语法格式为:Insert into 表名(字段1,字段2,字段3,...)values (值1,值2,值3...);示例://插入一个user用户表,字段有id、name,值为1和linInsert into 'use...
    99+
    2024-04-02
  • 怎么进行sql注入
    这篇文章主要介绍了怎么进行sql注入,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入...
    99+
    2024-04-02
  • SQL注入怎么解决
    小编给大家分享一下SQL注入怎么解决,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言SQL注入即是指web应用程序对用户输入数...
    99+
    2024-04-02
  • HTML注入怎么实现
    本篇内容介绍了“HTML注入怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是HTMLHTML称为超文本标记语言,是一种标识性的语...
    99+
    2023-06-17
  • 怎么防御SQL注入
    这篇文章主要介绍怎么防御SQL注入,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!  许多网站程序在编写时,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段...
    99+
    2024-04-02
  • 怎么防止SQL注入
    这篇文章主要介绍了怎么防止SQL注入,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。SQL注入即是指web应用程序对用户输入数据的合法性没有判...
    99+
    2024-04-02
  • SQL注入怎么防范
    这篇文章主要介绍“SQL注入怎么防范”,在日常操作中,相信很多人在SQL注入怎么防范问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL注入怎么防范”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!一:什么是...
    99+
    2023-06-21
  • 如何实现sql防注入问题
    sql防注入的实现方法:设置目录权限,系统管理员应为信息系统的每个目录或文件设置相应权限,授予每个文件能正常运行的权限,比如静态页面文件所在的目录,应只授予“读取”权限,包含活动脚本的文件授予“纯脚本”权限就足够了。隐藏错误信息,把服务器设...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作