Я читал так много статей, описывающих методы предотвращения атак XSS в представленном пользователем HTML-контенте, используя такие функции, как htmlspecialchars и регулярные выражения, whitelisting/blacklisting и использование html-фильтров, таких как HTML Purifier, HTMLawed и т.д.
К сожалению, ни один из них не объясняет, как такой сайт, как eBay, способен разрешить такой огромный массив потенциально вредоносных тегов HTML, таких как <link>
, <script>
, <object>
и стили CSS и атрибуты HTML, такие как фон: url() и т.д. Кажется, что они позволяют пользователям отправлять почти что-либо в свои описания предметов. Я видел некоторые из самых сложных HTML, Javascript и Flash-шаблонов в описаниях элементов.
Что делает eBay по-другому? Есть ли еще один метод или слой, который мне не хватает, что позволяет им блокировать атаки XSS, сохраняя при этом все, что можно включить в описание пользовательских элементов?
Любые идеи или понимание этого будут очень признательны!