Почему _.escape изменяет / символы в Underscore.js?

Я просматривал API Underscore.js и заметил, что _.escape ускользает &, <, >, ", ', а также / персонажи. То, что удивило меня, сбежало /,

Есть ли причина для побега / персонажи, о которых я не знаю?

1 ответ

Решение

РЕДАКТИРОВАТЬ: Хорошо, по-видимому, это рекомендуется OWASP, поскольку он "помогает завершить сущность HTML".

Используйте следующие символы с кодировкой сущности HTML, чтобы предотвратить переключение в любой контекст выполнения, такой как сценарий, стиль или обработчики событий. Использование шестнадцатеричных сущностей рекомендуется в спецификации. В дополнение к 5 символам, значимым в XML (&, <,>, ", '), добавлена ​​косая черта, поскольку она помогает завершить сущность HTML.

& --> &amp;
< --> &lt;
> --> &gt;
" --> &quot;
' --> &#x27;     &apos; is not recommended
/ --> &#x2F;     forward slash is included as it helps end an HTML entity

Прошло много времени, но я обнаружил ту же проблему. Странно то, что список изменений в коде соответствует подчеркиванию github

var escapeMap = {
  '&': '&amp;',
  '<': '&lt;',
  '>': '&gt;',
  '"': '&quot;',
  "'": '&#x27;',
  '`': '&#x60;'
};
Другие вопросы по тегам