深入PHP magic quotes的详解

时间:2024-05-11 10:12:00 

特地查看了下手册,关于php  magic quotes,常见的几个设置如下,magic_quotes_gpc,magic_quotes_sybase,magic_quote_runtime,这几个函数是在php.ini中去配置的,从手册中可以看出从php5.3后已经废除了这些特性,所以强烈大家不要使用,在php.ini中关闭它。

深入PHP magic quotes的详解

这些函数的作用是对数据进行转义。防止sql注入的时候,很多人会这样写:


if(!get_magic_quotes_gpc()){
$post=addslashes($post);
}


如果开启了它们,会自动给你转义单引号(')、双引号(")、反斜线(\)与 NUL(null字符),其实就相当于调用addslashes函数。你可能会说这样不是很好嘛,安全性更高了,但是,你考虑代码移植性了吗?另外,对于上所有gpc($_GET,$_POST,$_COOKIE)的数据你都进行转义是否有必要?开销有多大?下面PHP点点通(phpddt.com)就对手册中关于Magic Quotes的详细说明:

1.magic_quotes_gpc

magic_quotes_gpc这个是用来设置GPC($_GET、$_POST、$_COOKIE)的魔术引用状态(在PHP4中也包含$_ENV)。当开启时,所有的单引号(single-quote),双引号(double quote),反斜线(backslash)和NUL's会被反斜线自动转义。当开启magic_quote_sybase为on时,只有单引号(singgle-quote)会被单引号转义为'',双引号、反斜线(backslash)和NUL's不受影响不会被转义。

深入PHP magic quotes的详解

2.magic_quote_runtime

magic_quote_runtime如果开启该选项,许多返回外部数据(数据库、文本)的函数将会被反斜线(backslash)转义。如果也开启magic_quote_sybase,则只有单引号(single-quote)会被单引号转义。

深入PHP magic quotes的详解

3.magic_quotes_sybase

magic_quotes_sybase如果设置此选项开启、在magic_quotes_gpc,magic_quotes_runtime开启的情况下单引号‘会被单引号'转移而不是被反斜线\转义。同时、此设置会完全覆盖magic_quotes_gpc的设置,即使magic_quotes_gpc被设置为on,双引号“、反斜线\和NUL's也不会被转义。

深入PHP magic quotes的详解

标签:php,magic,quotes
0
投稿

猜你喜欢

  • python 面向对象开发及基本特征

    2022-09-03 01:48:43
  • Js利用正则表达式去除字符串的中括号

    2024-04-23 09:23:21
  • asp xmlhttp下载一句话

    2013-06-30 06:47:48
  • python多进程实现进程间通信实例

    2023-01-30 10:39:35
  • Python通过tkinter实现百度搜索的示例代码

    2022-06-28 01:28:46
  • python单元测试框架pytest的使用示例

    2023-01-20 05:59:27
  • Python实现向QQ群成员自动发邮件的方法

    2021-08-16 13:41:33
  • 利用Python统计Jira数据并可视化

    2023-06-26 00:11:46
  • Vue结合Video.js播放m3u8视频流的方法示例

    2023-07-02 16:55:40
  • 利用pyuic5将ui文件转换为py文件的方法

    2023-03-20 05:01:43
  • python肯德尔系数相关性数据分析示例

    2023-02-20 21:42:35
  • Python列表解析操作实例总结

    2022-10-10 09:59:38
  • Python矩阵常见运算操作实例总结

    2021-05-29 18:26:38
  • 在PyCharm中安装PaddlePaddle的方法

    2022-02-24 17:28:18
  • 轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器

    2024-05-03 15:31:44
  • Python函数式编程指南(三):迭代器详解

    2023-06-03 06:11:52
  • MySQL的存储引擎InnoDB和MyISAM

    2024-01-26 02:19:30
  • BootStrap 动态添加验证项和取消验证项的实现方法

    2023-08-13 14:17:57
  • 通过事务日志解决SQL Server常见四大故障(二)

    2009-03-25 13:51:00
  • jetbrains mono字体安装方法(推荐)

    2023-08-28 23:11:38
  • asp之家 网络编程 m.aspxhome.com