Подтвердить что ты не робот

Какая самая лучшая практика для установки атрибута html через PHP?

При выполнении этой задачи в PHP можно встретить такую ​​проблему:

<span title="<?php echo $variable;?>">...

Проблема заключается в том, что если $variable содержит двойные кавычки, следует изменить его на \"

И это еще не все:

<span title='<?php echo $variable;?>'>...

В этом случае нам нужно изменить одинарные кавычки на \', но оставить двойные кавычки как есть.

Итак, как мы можем это сделать с помощью общего свойства?

4b9b3361

Ответ 1

Вы всегда хотите кодировать HTML-коды внутри атрибутов HTML, что вы можете сделать с помощью htmlspecialchars:

<span title="<?php echo htmlspecialchars($variable); ?>">

Вероятно, вы хотите установить второй параметр ($quote_style) на ENT_QUOTES.

Единственный потенциальный риск состоит в том, что $variable уже может быть закодирован, поэтому вы можете установить последний параметр ($double_encode) на false.

Ответ 2

Хорошо, прежде чем вы выводите какой-либо текст в HTML, вы должны избегать его, используя htmlspecialchars(). Поэтому просто убедитесь, что (двойная) цитата правильно изменена.

Обратите внимание на второй параметр этой функции.

Ответ 3

Чтобы отредактировать свое редактирование [ Изменить:, которое вы удалили между тем]: когда вы размещаете динамический JavaScript на своем сайте, вам следует прежде всего хорошо знать, как он будет выглядеть. Кроме того, вы широко открываете дверь для атак XSS. Это не значит, что вам нужно знать каждую метку кавычки, но вы должны знать достаточно, чтобы решить, как вставить ее в строку, где вы, наконец, выведете ее в файл HTML.

Кроме того,

<a onclick="func(&apos;l&apos;)">

работает точно так же, как

<a onclick="func('l')">