自己来答一下吧,这里不讨论pdo和mysqli的prepare方法。

addslashes()和get_magic_quotes_gpc()其实这里面会有几个问题细节。

1.addslashes()斜杠是怎么防止注入的

2.get_magic_quotes_gpc()默认启用的时候加的斜杠,为什么存到mysql中没有

3.正常的处理方法是怎么样的

分别答一下。

1.addslashes()就是为变量中的'或者"加\,当有人在变量(url)打入特殊的字符串的时候,语义起到变化。加斜杠后破坏语义,所以起到防注入的作用。具体的sf上面文章很多,有举自己查一下。

2.第二个问题,不管系统是否启用了magic_quotes_gpc(),当你写入一个字符串,比如 let\'s ,真正存到mysql中,这个斜杠都不见了。也就是说mysqli->query()之前,php会进行悄悄进行strip_slashes(),所以存进行去就没有了。

这里衍生出另一个问题,在不加斜杠的情况下,如果你的sql字符串是用两个'包含的,那么变量包含'会导致sql语句错误。如果包含在两个"之间,变量包含"会造成sql语法错误。

3.正确的做法

a.手工操作。magic_quotes_gpc如果没有启用,就手工对所有$_GET和$_POST变量加斜杠。

b.对存入mysql的变量不需要strip_slashe(),因为php会自动去的。

c.仅在php中进行变量操作和输出的情况下,需要strip_slashe(),不然显示在浏览器上就多个斜杠。

d.如果是个新项目,从头就用pdo或者prepare

ps:

在php5.4及以后的版本中,不再支持magic_quotes_gpc,即使加到php.ini中也没用。

但是,使用get_magic_quotes_gpc()这个函数还是有用的,用来判断是否了启用魔术引用。

.

mysql addslashes c_addslashes()用途与php怎样防止mysql注入?相关推荐

  1. mysql事件探查器_【干货】Mysql的事件探查器-之Mysql-Proxy代理实战一(安装部署与实战sql拦截与性能监控)...

    1:资料参考 https://blog.csdn.net/coldljy/article/details/3168906 https://www.cnblogs.com/jwentest/p/8552 ...

  2. 自定义表单mysql_自定义表单,计算答案然后更新mysql DB(Custom form, calculate answer then update mysql DB)...

    自定义表单,计算答案然后更新mysql DB(Custom form, calculate answer then update mysql DB) 我想要实现的是用户购买代币时的模拟支付系统. 我坚 ...

  3. java mysql安装教_大学java教案之MySQL安装图解

    一.MYSQL的安装 1.打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行"setup.exe". 2.选择安装类型,有"Typ ...

  4. mysql xtrabackup 主从_使用 Xtrabackup 在线对MySQL做主从复制

    说明1.1 xtrabackupmysqldump对于导出10G以下的数据库或几个表,还是适用的,而且更快捷.但一旦数据量达到100-500G,无论是对原库的压力还是导出的性能,mysqldump就力 ...

  5. win7 apache php mysql 配置64,win7 64位 Apache+php+mysql配置方法

    这两天一直在学习网站前端后台的制作,给电脑配置Apache php MySQL时遇到了不少问题,今天终于把它解决了,这里分享下自己安装过程以及配置过程中遇到的问题. 安装用的几个软件已上传到自己的空间 ...

  6. mysql pacemaker_集群:corosync+pacemaker实现MySQL服务高可用

    高可用集群是指以减少服务中断时间为目的的服务器集群技术.它通过保护用户的业务程序对外不间断提供的服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度.高可用集群的应用系统有多样化发展趋势,用 ...

  7. mysql技术innodb存储引擎读后感_《MySQL技术内幕:InnoDB存储引擎》读书笔记.

    一.MySQL 体系架构和存储引擎 1.MySQL 被设计成一个单进程多线程架构的数据库,MySQL 数据库实例在系统上的表现就是一个进程. 2.MySQL 的体系架构,需要特别注意的是,存储引擎是基 ...

  8. 程序连接不上mysql数据库文件_数据库问题(程序连接mysql错误)

    今天服务器遇到了一个很熟悉的问题 输入 #mysql -u root -p ERROR 2002 (HY000):Can't connect to local MySQL server 随即上网找寻答 ...

  9. mysql更改数据文件目录及my.ini位置| MySQL命令详解

    需求:更改mysql数据数据文件目录及my.ini位置. 步骤: 1.查找my.ini位置,可通过windows服务所对应mysql启动项,查看其对应属性->可执行文件路径,获取my.ini路径 ...

最新文章

  1. Cocos2d-x3.0 TestCPP文件夹笔记
  2. ESP32-S的UART2的初始化需要注意的问题
  3. javascript 表单验证大全(一)
  4. Wpf使用Winform控件后Wpf元素被Winform控件遮盖问题的解决
  5. 动手学深度深度学习-pycharm中配置mxnet开发环境
  6. 《暗时间》前两篇的笔记和总结
  7. 【数据结构与算法】之深入解析“股票平滑下跌阶段的数目”的求解思路与算法示例
  8. RuoYi-Cloud 部署篇_02(windows环境 mysql版本)
  9. vue base64图片不显示_技巧 | word中插入的图片显示不完整怎么办?
  10. Scikit-Learn简单操作
  11. scala的函数(day02)
  12. python 面向对象的封装_Python面向对象封装操作案例详解
  13. 微信公众号迁移公证书需要哪些材料?账号迁移流程来了
  14. 传奇服务器怎么修改升级武器成功,传奇论坛服务端教程原创升级武器不碎完整脚本...
  15. 5点滑动平均公式推导
  16. 百度api爬虫(1)从百度api中爬取地点数据
  17. Vue中添加背景图片
  18. 任意多边形面积计算公式
  19. php调用lol数据库,计算lol战斗力
  20. js实现数字从1动态递增到10

热门文章

  1. 【脑经急转弯】—— 猜额头上的数字
  2. 【脑筋急转弯】—— 谁是诚实人?
  3. 矩阵等式 matrix identity(numpy仿真)
  4. C++11/14::右值引用
  5. java 实现根据ip重定向_从0到1用java再造tcpip协议栈:代码实现ping应用功能1
  6. 比亚迪汉鸿蒙系统测评_深度:预判比亚迪汉EV电驱动系统技术状态
  7. 济南python工资一般多少-2020年济南学python好点的学校
  8. 爬虫python能做什么-python爬虫能干什么
  9. python发音翻译-python实现在线翻译
  10. 零基础学python大概要多久-零基础自学python要多久?