1

我做了这个功能

function echoSanitizer($var)
{
$var = htmlspecialchars($var, ENT_QUOTES);
$var = nl2br($var, false);
$var = str_replace(array("\\r\\n", "\\r", "\\n"), "<br>", $var);
$var = htmlspecialchars_decode($var);
return stripslashes($var);
}

会不会受到 xss 攻击?

  • htmlspecialchars 带走 html 标签
  • nl2br 用于新线路
  • str_replace 将 \r\n 转换为<br>
  • htmlspecialchars_decode 转换回原始字符
  • 带斜杠到 STRIPSLASHES

为什么我需要所有这些?因为我想预览用户输入的内容,并且我想让他们看到所见即所得的东西。一些输入来自 textarea 框,我希望保留空格,因此需要 nl2br。

通常我问的是 (htmlspecialchars_decode) 因为它对我来说是新的。安全吗?总的来说,如果我用它来显示用户输入,我会确保这个功能是安全的吗?

(此方案中不涉及数据库。)

4

1 回答 1

1
于 2013-05-07T21:37:50.020 回答