Эта конкретная строка является допустимой JSON. Тем не менее:
echo "<input type='text' name='json' id='json' value ='$JsonVar'>";
отсутствует вызов htmlspecialchars
, поэтому, если в одном из ваших значений есть одинарная кавычка, вы получите неработающий атрибут, что приведет к неправильным JSON и HTML-инъекциям, что приведет к потенциальным дырам в безопасности XSS .
Не забудьте HTML-escape каждую текстовую строку, которую вы выводите в HTML, например ::
<input type="text" name="json" id="json" value="<?php echo htmlspecialchars($JsonVar); ?>">
или вы можете использовать опции PHP 5.3 JSON_HEX
, чтобы гарантировать отсутствие специальных символов HTML, избегая необходимости в этом шаге:
<?php $jsonVar= json_encode($res, JSON_HEX_TAG|JSON_HEX_QUOT|JSON_HEX_AMP); ?>
<input type="text" name="json" id="json" value="<?php echo $jsonVar; ?>">