6

これは、この(優れた)回答を参照しています。彼は、PHP で入力をエスケープするための最善の解決策は、mb_convert_encoding に続いて html_entities を呼び出すことだと述べます

しかし、なぜ mb_convert_encoding を同じ to パラメーターと from パラメーター (UTF8) で呼び出すのでしょうか?

元の回答からの抜粋:

HTML タグの外側で htmlspecialchars($string) を使用しても、マルチバイト文字セット攻撃ベクトルに対して脆弱です。

最も効果的な方法は、次のように mb_convert_encoding と htmlentities を組み合わせて使用​​することです。

$str = mb_convert_encoding($str, 'UTF-8', 'UTF-8');
$str = htmlentities($str, ENT_QUOTES, 'UTF-8');

これには、私が見逃している何らかの利点がありますか?

4

1 に答える 1