【发布时间】:2011-03-01 16:31:24
【问题描述】:
我有一个包含表单的 php 页面。
有时此页面会提交给自身(例如上传图片时)。
我不希望用户一次又一次地填写每个字段,因此我将其用作表单内文本输入的值:
value="<?php echo htmlentities(@$_POST['annonsera_headline'],ENT_COMPAT,'UTF-8');?>">
这可行,除了它在每个双引号之前添加一个“\”符号...
例如在页面提交给自身后写 19" 轮子:
19\" wheels
如果我什至不使用 htmlentities,那么引号之后的所有内容都会消失。
这里有什么问题?
更新:
好的,所以问题是 magic_quotes...这是在我的服务器上启用的...
我应该禁用它吗?我有 root 访问权限,它是我的服务器 :)
禁用它有什么害处?
【问题讨论】:
-
get_magic_quotes_gpc() 的输出是什么?
-
禁用它的危害:如果您正确编程,则没有。保留它的危害:如果您出于某种原因禁用它或将脚本复制到没有它的机器上,您往往会依赖它被激活并打开可怕的安全漏洞。正确意味着:每个输出都通过 htmlentities 运行,每个数据库输入都使用参数(最好)或正确转义(可以接受,但有时您可能会忘记它)。