Существуют ли другие последовательности, которые браузеры интерпретируют как специальные символы HTML?

В HTML есть несколько специальных символов & '", которые имеют значение для парсера DOM. Это символы, которые популярные функции, такие как PHP htmlspecialchars , преобразуют в объекты HTML, чтобы они случайно не сработали при синтаксическом анализе.

Выполненные переводы:

  • '&' (амперсанд) становится &
  • « (двойная кавычка) становится » когда ENT_NOQUOTES не установлен.
  • ' (одинарная кавычка) становится ' только когда установлен ENT_QUOTES.
  • '
  • '>' (больше чем) становится >

Однако я помню, что в старых браузерах, таких как IE6, также было другие последовательности байтов , из-за которых анализатор DOM браузера интерпретировал содержимое как HTML .

Это все еще проблема? Если вы отфильтруете только эти 5 символов, этого достаточно для предотвращения XSS?

Например, вот все известные комбинации символа «

<
%3C
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
\x3c
\x3C
\u003c
\u003C

6
задан Xeoncross 24 December 2011 в 19:12
поделиться