Является ли php htmlspecialchars безопасным для JS? - PullRequest
0 голосов
/ 04 июля 2011

Является ли php htmlspecialchars безопасным для JS?

var jsVar = "<?php echo(str_replace(array("\r\n", "\n","\r"), "\\n",htmlspecialchars($_GET['p'], ENT_QUOTES))); ?>";

Как насчет многобайтовых символов?

1 Ответ

4 голосов
/ 04 июля 2011

Нет. Для этого вы должны использовать json_encode (JSON = Javascript нотация).

var foo = <?php echo json_encode('Foo "Bar" Baz'); ?>;

htmlspecialchars экранирует символы, которые имеют особое значение в HTML. Литералы Javascript содержат другие специальные символы, о которых вам нужно позаботиться, поэтому экранирование HTML не имеет смысла.

...