htmlspecialchars($ _ POST ['userinput'],ENT_NOQUOTES)是否忽略引号?

时间:2019-05-22 21:39:54

标签: php xss htmlspecialchars

我不知道这是否是一种很好的编码习惯,但是我试图在需要接受单引号和双引号有效的用户输入字段上使用htmlspecialchars()。输入将存储在数据库中。

尽管指定了ENT_NOQUOTES,但引号仍在编码中。

使用简单的字符串,该函数可以正常工作。

$string = htmlspecialchars("10'", ENT_NOQUOTES);
echo ($string) outputs expected 10' or 10"

但是如果我使用

$input = htmlspecialchars($_POST['input'], ENT_NOQUOTES); 

和$ input ==“ 10'”

$ input输出10' (等同于html实体的引号)

我尝试将$ _POST ['input']保存到变量,然后在该变量上使用该函数。

$i = $_POST['input'];
$input = htmlspecialchars($i, ENT_NOQUOTES);

相同的交易。

我正在使用ajax并将输出的页面编码为json以显示结果。我想知道这是否与它有关。

谢谢。

0 个答案:

没有答案