PHP 7.4 已弃用 get_magic_quotes_gpc 函数替代
PHP 7.4 deprecated get_magic_quotes_gpc function alternative
我遇到这样一种情况,我的一个旧代码正在使用 get_magic_quotes_gpc()
,它在最新的 PHP 7.4 版中已弃用。*
目前,我有这样的东西。
添加斜杠
return get_magic_quotes_gpc() ? addslashes($string) : $string;
删除斜杠
return get_magic_quotes_gpc() ? stripslashes($string) : $string;
这显然是错误的
Deprecated: Function get_magic_quotes_gpc() is deprecated
问题:
我该如何解决?那么不使用 get_magic_quotes_gpc()
函数也可以工作吗?
您需要从您的代码中删除所有提及此功能的内容,并且不要用任何其他内容替换它。
get_magic_quotes_gpc()
从 PHP 5.4.0 开始就没用了。它会告诉您是否在配置中打开了魔术引号。魔法引号是个糟糕的主意,出于安全原因,此功能已被删除(PHP 开发人员相信魔法和迷信并编写了不安全的代码)。
很可能连你自己都不知道为什么你的项目中有这行代码。我知道我在学习的时候被它忽悠了PHP。事实是你根本不需要它。此功能与安全无关,输入清理的概念是荒谬的。
相反,请依赖良好的安全准则。
- 使用参数化准备语句与数据库进行交互。 PHP 有一个非常好的库称为 PDO,它可以与许多数据库驱动程序一起使用,包括 MySQL。
- 如果您产生输出,那么考虑到该媒体的规则,转义输出。例如当输出到 HTML 时使用
htmlspecialchars()
来防止 XSS。
- 永远不要清理输入。没有神奇的解决方案可以保护您免受一切侵害。相反,作为开发人员,您必须意识到危险,并且您需要知道如何保护您的代码。 Don’t try to sanitize input. Escape output.
我遇到这样一种情况,我的一个旧代码正在使用 get_magic_quotes_gpc()
,它在最新的 PHP 7.4 版中已弃用。*
目前,我有这样的东西。
添加斜杠
return get_magic_quotes_gpc() ? addslashes($string) : $string;
删除斜杠
return get_magic_quotes_gpc() ? stripslashes($string) : $string;
这显然是错误的
Deprecated: Function get_magic_quotes_gpc() is deprecated
问题:
我该如何解决?那么不使用 get_magic_quotes_gpc()
函数也可以工作吗?
您需要从您的代码中删除所有提及此功能的内容,并且不要用任何其他内容替换它。
get_magic_quotes_gpc()
从 PHP 5.4.0 开始就没用了。它会告诉您是否在配置中打开了魔术引号。魔法引号是个糟糕的主意,出于安全原因,此功能已被删除(PHP 开发人员相信魔法和迷信并编写了不安全的代码)。
很可能连你自己都不知道为什么你的项目中有这行代码。我知道我在学习的时候被它忽悠了PHP。事实是你根本不需要它。此功能与安全无关,输入清理的概念是荒谬的。
相反,请依赖良好的安全准则。
- 使用参数化准备语句与数据库进行交互。 PHP 有一个非常好的库称为 PDO,它可以与许多数据库驱动程序一起使用,包括 MySQL。
- 如果您产生输出,那么考虑到该媒体的规则,转义输出。例如当输出到 HTML 时使用
htmlspecialchars()
来防止 XSS。 - 永远不要清理输入。没有神奇的解决方案可以保护您免受一切侵害。相反,作为开发人员,您必须意识到危险,并且您需要知道如何保护您的代码。 Don’t try to sanitize input. Escape output.