MySQL社区

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 3671|回复: 3
打印 上一主题 下一主题

请解释下get_magic_quotes_gpc()

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-19 05:14:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么说去掉了单引号原有的功能之后 就可以减少php脚本的安全隐患

在实际操作中如果我们不打开魔术引用会遇到除安全问题之外的问题吗?比如无法执行某些语句
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享淘帖 顶 踩
2#
发表于 2009-3-19 10:02:40 | 只看该作者
你的问题,是不是跟这个道理一样呀:不用保安为什么就不安全了...

参考:
为什么要用魔术引号
  • 对初学者很有用
    魔术引号在 PHP 中用来实现避免初学者的代码更危险。尽管 SQL 注入 在魔术引号打开的情况下仍然有可能实现,但起码系统的风险减少很多了。
  • 方便使用
    当向数据库中插入数据时,魔术引号所做的就是自动对所有的 GET、POST、COOKIE 数据运用 addslashes() 函数。


为什么不用魔术引号
  • 可移植性
    编程时认为其打开或并闭都会影响到移植性。可以用 get_magic_quotes_gpc() 来检查是否打开,并据此编程。
  • 性能
    由于并不是每一段被转义的数据都要插入数据库的,如果所有进入 PHP 的数据都被转义的话,那么会对程序的执行效率产生一定的影响。在运行时调用转义函数(如 addslashes() )更有效率。
    尽管 php.ini-dist 默认打开了这个选项,但是 php.ini-recommended 默认却关闭了它,主要是出于性能的考虑。
  • 不便
    由于不是所有数据都需要转义,在不需要转义的地方看到转义的数据就很烦。比如说通过表单发送邮件,结果看到一大堆的 \'。针对这个问题,可以使用 stripslashes() 函数处理。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|申请友链|小黑屋|Archiver|手机版|MySQL社区 ( 京ICP备07012489号   
联系人:周生; 联系电话:13911732319

GMT+8, 2024-4-26 16:28 , Processed in 0.077532 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表