gpt4 book ai didi

php - 了解 PHP 中的输入转义

转载 作者:可可西里 更新时间:2023-11-01 07:11:20 25 4
gpt4 key购买 nike

一直让我感到困惑的一件事是输入转义以及您是否受到保护免受 SQL 注入(inject)等攻击。

假设我有一个使用 HTTP POST 将数据发送到 PHP 文件的表单。我在输入字段中键入以下内容并提交表单:

"Hello", said Jimmy O'Toole.

如果您在接收此 POST 数据的 PHP 页面上打印/回显输入,结果如下:

\"Hello\", said Jimmy O\'Toole.

这是令人困惑的地方。如果我将这个输入字符串放入 (My)SQL 并执行它,它将很好地进入数据库(因为引号被转义),但这会停止 SQL 注入(inject)吗?

如果我获取输入字符串并调用类似 mysqli real_escape_string 的函数在上面,结果是这样的:

\\"Hello\\", said Jimmy O\\'Toole.

所以当它通过 (My)SQL 进入数据库时​​,它最终是这样的:

\"Hello\", said Jimmy O\'Toole.

这显然有太多的斜杠。

因此,如果输入通过 HTTP POST 转义,您是否必须再次转义以使其对 (My)SQL 安全?还是我在这里没有看到明显的东西?

在此先感谢您的帮助。

最佳答案

啊,奇迹magic quotes .它正在从您的 POST 表单中进行那些不必要的转义。您应该禁用(或中和)它们,这样您的许多头痛就会消失。

这是该主题的示例文章:http://www.sitepoint.com/blogs/2005/03/02/magic-quotes-headaches/

回顾:禁用魔术引号,使用 real_escape_string()

关于php - 了解 PHP 中的输入转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/457014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com