PHP 5.3自动转义$ _GET / $ _从形式的字符串POST?

我的服务器管理员最近升级到PHP 5.3,我得到一个奇怪的“错误”(或功能,如PHP乡亲有它)。 我曾mysql_real_escape_string各地的大多数我的字符串形式的数据,显而易见的安全原因,但现在看来,这个转义已经由PHP完成。

<?php echo $_GET["escaped"]; ?> <form method="get"> <input type="text" name="escaped" /> </form>

这种输出,如果我为实例输入escape 'this test'escape \'this test\' 也是一样,如果我使用POST而不是GET

它是直接连到5.3的升级或可能我的管理引发php.ini文件中的一些自动切换?

另外,我应该只是离开它是(因为它确实是一个不错失败的正确捕获所有get和post变量证明机制的情况下),或者我应该禁用它(如果这甚至有可能!),回到mysql_real_escape_string ? 我的胆量告诉我接近2是最好的,但方法1是有些自动魔法。 :)

编辑:其实,我需要将其禁用。 有时候,我收集表单数据,并将其重新发送到万一客户端形式是错误的(即缺场),所以我不想让他/她有斜线出现无章可循。

--------------解决方案-------------

这种“功能”被称为magic_quotes_gpc 不会保护你所有的SQL注入攻击( addslashes被称为输入超全局变量的每一个元素,如$_POST$_GET ,这忽略了实际的输入/数据库编码)。 因此,它被废弃,不应该使用。

PHP官方手册包括一个整洁的办法撤消它在PHP代码,但应该把它关掉

这是由于魔术引号,你应该关闭它。

这里是你如何把它关掉:http://www.php.net/manual/en/security.magicquotes.disabling.php

你要么通过php.ini文件或通过从所有变量去除斜杠做$_GET$_POST ,显然前者是要走的推荐方式。


正如威尔·马丁建议,您还可以通过改变它.htaccess是这样的:

magic_quotes_gpc的的php_flag关闭

更多资讯:http://php.net/manual/en/configuration.changes.php

检查php.ini中http://www.php.net/manual/en/info.configuration.php#ini.magic-quotes-gpc选项

这听起来像你的服务器有魔术引号打开 - 你可以看看http://www.php.net/manual/en/security.magicquotes.disabling.php的方法来禁用它们进行深入讨论。

分类:php 时间:2012-01-01 人气:0
分享到:

相关文章

  • PHP:如何(正确)删除转义引号阵列时,魔术引号为ON 2013-07-13

    如你所知,当魔术引号为ON,单引号是转义值以及在密钥. 大多数解决方案,以消除魔术引号在运行时只反向转义值,而不是键. 我在寻找,将反向转义键和值的解决方案... 我发现在PHP.net这一段代码: $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); while (list($key, $val) = each($process)) { foreach ($val as $k => $v) { unset

  • 什么是PHP魔术引号运行? 2012-04-23

    我完全意识到PHP魔术引号的像差,它是如何邪恶,我避之虫,但什么是magic_quotes_runtime ? 从php.ini文件: 魔术引号运行时产生的数据,从SQL如数据,从EXEC()等. 是是我应该检查是否和关闭有: set_magic_quotes_runtime(false); 在默认情况下是不是经常在? 我知道这是不推荐使用在5.3.0和6.0.0中,但由于我的脚本支持,去掉5.1.0+我想知道如何在"遗产"PHP处理这个(如果是相关的). 编辑:为了把事情说清楚我想要

  • 通过PHP在HTML表单转义双引号的困惑 2012-10-25

    我有我用一个简单的PHP脚本前端SQLite数据库. 这没有什么特别的复杂. 但是我从寻找在数据库中的记录是什么,我在用双引号一个表单字段中输入遇到的形式处理,就好像我会用反斜杠转义引号注意. 所以,当我进入的标题的记录: 英国轻型多用途车10HP"蒂利" 什么在数据库中显示出来的是: 英国轻型多用途车10HP \"蒂莉\" 我不知道这些是从哪里来的,而且更糟的是,即便是使用下面的preg_replace似乎并没有将其删除: $name = preg_replace

  • PHP魔术引号速战速决 2012-11-18

    我Magic_Quotes一向上才有了今天我已经看到它变得depriciated. 如果我有它关闭可能我只是逃避所有的用户输入(不管它是被我的数据库或不使用). 我绝对不能回去重写我所有的数据库查询使用mysql_real_escape_string(). 莫非我只是通过我所有的$ _GET,$ _ POST和$ _SESSION和应用mysql_real_escape_string环()? --------------解决方案------------- mysql_real_escape_st

  • 禁用PHP魔术引号php.ini中没有或的.htaccess的最佳方法 2012-12-22

    我需要编写可移植代码与将在共享服务器上运行magic_qoutes_gpc启用,我无法改变在php.ini或的.htaccess. (服务器运行PHP 5.2) 似乎有无数的功能stripslaches所有的$_GET , $_POST等超全局,但我不知道这是最好的. 这里还一些评论似乎说钥匙也有斜线加入需要被剥离为好. 所以,我应该使用PHP网站上的一项: if (get_magic_quotes_gpc()) { $process = array(&$_GET, &$_POST, &a

  • MySQL的本地主机的phpMyAdmin接受魔术引号 2013-01-09

    我有一个小问题,我的本地Ubuntu上接受撇号公布从PHP文件到MySQL数据库的数据. 例: It's your birthday! 不会受我的本地数据库被接受,也不会接受任何与它要么到来. 例: Its your birthday! 将我的本地数据库和其他一切,只要没有贴用省略号它的到来被接受. 我怎样才能让我的本地机器像与数据发布到数据库,接受我的撇号服务器联机行动? 这将是更多的保证,我认为在开发我的代码工作. 我要让我的本地主机像我的服务器接受数据,而无需使用mysql_real_es

  • 我一定要停用魔术引号使用PDO时 2013-01-26

    简单的问题,我想简单的答案. 我使用的是PDO准备语句,以确保我的数据安全地处理到数据库. 但是我困惑. 我一定当magic_quotes的被允许的变量来禁用魔术引号或用stripslashes. 再经过让PDO做好安全工作? --------------解决方案------------- 如果您正在使用PDO的准备语句将数据插入到你的数据库,这些数据将进入完全按照您将其插入到数据库中. magic_quotes加斜杠的数据:因此,这些将出现在数据库中. 这显然​​不是你想要的. 正如你所说,禁

  • 启用魔术引号当SQL注入 2013-04-09

    可能的重复: 是单引号PHP自动逃跑? 那么有什么需要清洗? 成功的SQL注入尽管PHP魔术引号 今天早些时候,我问了一下报价自动转义并了解魔术引号. 螺纹位于是单引号PHP自动逃跑? 那么有什么需要清洗? 我们来到了共识,认为魔术引号是不够的,我们应该始终验证和清理用户输入以及使用准备好的查询. 然而,这导致了这个问题,在一个神奇的报价启用服务器什么样的SQL注入会绕过魔术引号规定的安全措施? 为什么魔术引号不安全? 为了说服我,魔术引号是不安全的,我想看到​​的注入,将绕过这些措施的现实世界

  • 哪一个会是更好地使用默认魔术引号或用户定义的addslash / stripslash在PHP? 2013-06-28

    哪一个会是更好地使用默认魔术引号或用户定义的addslash / stripslash在PHP? 我想用最好的之一. 请帮助我. --------------解决方案------------- 两者都不是. 魔术引号是万恶之源! (在我眼里不是过早优化的xD更糟) 为什么你要创建一个用户自定义( add | strip )斜线功能,当有本地的PHP的? 如果你想逃离你的约会对象的数据库使用数据库特定的功能(例如mysqli_real_escape_string 编辑. 完成我的答案(与萨迪在评论

  • 逃逸用户数据,没有魔术引号 2014-09-08

    我正在看一下如何正确逃生来自外界之前它被使用的数据无论是对应用程序的控制,存储,逻辑......之类的话. 显然,与魔术引号指令被取消不久,在PHP 5.3.0+,并在PHP6中删除,这变得更加紧迫,对任何人都希望升级,进入了新的语言特性,同时保持遗留代码(我们不爱它..). 但是,我还没有看到有一件事是关于什么做一旦你保护你的数据的理论/最佳实践得沸沸扬扬 - 例如,存储带或不带斜线? 我个人认为保持逃脱的DB数据是一个糟糕的举动,却想听到的讨论和阅读一些案例研究最好.. 从PHP手册中的某些

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.287 (s). 10 q(s)