この機能を作りました
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 攻撃から安全でしょうか?
- htmlタグを取り除くためのhtmlspecialchars
- 新しい行の nl2br
- \r\n をに変換する str_replace
<br>
- 元の文字に戻すための htmlspecialchars_decode
- ストリップスラッシュを STRIPSLASHES に
なぜ私はそのすべてが必要なのですか?ユーザーが入力したものをプレビューしたいので、WYSIWYG で表示したかったからです。入力の一部は textarea ボックスからのもので、スペースを保持したかったので nl2br が必要です。
一般的に、私は (htmlspecialchars_decode) について尋ねています。これは私にとって初めてのことです。安全ですか?全体として、ユーザー入力を表示するために使用する場合、私が安全にした機能はありますか?
(このシナリオにはデータベースは含まれません。)