当前位置:   article > 正文

Nodejs(SQL注入,占位符 转义查询 )_nodejs sql注入

nodejs sql注入

浅谈SQL注入

本来想把这篇文章写在  Nodejs(访问mysql)里 但是查了一下SQL注入 引起了我的兴趣 可能学习完前端这一套 我会抽时间 学习网络安全 这种课程

什么是SQL注入 就是 大家写SQL的时候 不管方法也好 还是 直接从界面取得控件内容 都或多或少拼接字符串方式

  1. var name=txt_name.text;
  2. var password=txt_pass.text;
  3. select * from 表 where name = '"+name+"' and pass = '"+password+"' ;

那么 假如 一个人 在登录的时候 输入了 admin' or '1

select * fromwhere username= 'admin' or '1' and password='admin' or '1'

根据SQL中逻辑运算的优先级,or低于and,最后的or ‘1’永远成立,所以该条件表达式结果为True,此语句同等于下面的这条语句
select * from [users]

那就进入了界面 

那么前台做特殊字符的防御 也可以达到防止的目的 但是 高人也会有高人的手段 就看他想不想~

还有很多进攻手段

SQL注入其实很简单,别一不留神就被利用了_51CTO博客_sql注入怎么利用(老君) 看一下这篇文章

nodejs占位符 转义查询

防止SQL注入  使用占位符 也是很好的选择

那么为什么 占位符可以防止 SQL注入那

简单的说 使用占位符 在mysql 传入的就是被转义后的sql

被数据库厂商方便的解决了

  1. select * fromwhere username= admin\' or '\1\ and password=admin\' or '\1\

详细可以看这篇

为什么占位符可以防止sql注入? - GreatAnt - 博客园

nodejs 使用占位符

  1. var mysql = require('mysql');
  2. //连接信息
  3. var connection = mysql.createConnection({
  4. host : 'localhost',
  5. port:3306,
  6. user : 'root',
  7. password : 'root',
  8. database : 'db'
  9. });
  10. //建立连接
  11. connection.connect();
  12. var age = '2'
  13. var id='1'
  14. //执行语句
  15. connection.query('select *from prople where age=? and id=?',[age,id],function(err,results, fields)
  16. {
  17. if (err) {
  18. console.log(err);
  19. }else
  20. {
  21. console.log(results);
  22. console.log(fields);
  23. }
  24. });
  25. connection.end();

占位符是很重要的一个知识点!get get

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/582937
推荐阅读
相关标签
  

闽ICP备14008679号