php - PHP 7.4 弃用 get_magic_quotes_gpc 函数替代
问题描述
我遇到了这样一种情况,即我的旧代码get_magic_quotes_gpc()
之一在最新的 PHP 版本 7.4 中已被弃用。*
目前,我有这样的事情。
添加斜线
return get_magic_quotes_gpc() ? addslashes($string) : $string;
删除斜线
return get_magic_quotes_gpc() ? stripslashes($string) : $string;
这显然是错误的
已弃用:函数 get_magic_quotes_gpc() 已弃用
问题:
我该如何解决?那么不使用get_magic_quotes_gpc()
函数也可以工作吗?
解决方案
您需要从代码中删除此函数的所有提及,并且不要将其替换为其他任何内容。
get_magic_quotes_gpc()
自 PHP 5.4.0 以来一直没用。它会告诉您是否在配置中打开了魔术引号。魔术引号是一个糟糕的主意,出于安全原因,此功能已被删除(PHP 开发人员相信魔术和迷信并编写了不安全的代码)。
很可能连你自己都不知道为什么你的项目中有这行代码。我知道我在学习 PHP 时被它愚弄了。现实是你根本不需要它。此功能与安全无关,输入清理的概念是荒谬的。
相反,请依靠良好的安全准则。
- 使用参数化的预处理语句与数据库交互。PHP 有一个非常好的库叫做 PDO,它可以与包括 MySQL 在内的许多 DB 驱动程序一起使用。
- 如果您产生输出,则在考虑该介质的规则的情况下转义输出。例如,当输出到 HTML 时使用
htmlspecialchars()
来防止 XSS。 - 永远不要清理输入。没有神奇的解决方案可以保护您免受一切侵害。相反,作为开发人员,您必须意识到危险,并且您需要知道如何保护您的代码。不要试图清理输入。转义输出。
推荐阅读
- c# - 如何从 ARGB 中删除重复的字符
- git - IntelliJ - - 如何应用整个文件作为更改?
- serialization - 在 Scheme 中,如何将记录 (srfi-9) 保存到文件中(将它们序列化到文件中),然后再将它们读回?
- reactjs - Redux 表单,针对特定字段清除和休息,反应 JS
- python - 使用 pandas 选择一组特定的分组数据框
- testing - 如何在 TestCafe 中计算以前的兄弟姐妹?
- python - 如何在命令提示符下安装 pip?“启动器中的致命错误”
- .net - 尝试在 .net 中使用 Lotus Notes IDXLExporter 会导致 System.OutOfMemoryException
- python - 如何从 mp3 文件中获取元数据(流派、艺术家)?
- discord - Discord bot ctx 被显示为参数