“每个引号前都有斜线”Enigma
您在 PHP 脚本中遇到了一个特殊问题:每当表单提交给自身时对于包含双引号的值,它会在每个值之前添加一个反斜杠。此行为归因于 PHP 臭名昭著的“魔术引号”功能。
魔术引号会自动转义某些字符(包括双引号),以防止恶意注入。虽然这看起来像是一种安全措施,但它也可能会导致像您遇到的问题一样的问题。
要解决此问题,请将以下代码片段合并到您的脚本中:
<code class="php">if (get_magic_quotes_gpc()) { $your_text = stripslashes($your_text); }</code>
get_magic_quotes_gpc() 函数检查是否启用了魔术引号。如果是这样,stripslashes() 函数会从文本中删除多余的反斜杠。
禁用魔术引号的风险
您已表明您拥有 root 访问权限服务器并正在考虑禁用魔术引号。了解潜在风险非常重要:
结论
虽然禁用魔术引号可以解决您当前的问题,但它是对于实施强大的输入验证和卫生实践以防止安全漏洞至关重要。在做出此决定之前,请仔细权衡潜在风险,并确保您的代码始终安全,无论魔术引号的状态如何。
以上是如何在 PHP 中禁用魔术引号并处理反斜杠插入问题?的详细内容。更多信息请关注PHP中文网其他相关文章!