Ответ 1
Разрешение встроенных стилей делает вас восприимчивыми к "другому XSS". Атаки с помощью Cross Site Styling.
Идея здесь в том, что в любых местах, где пользователь может вставлять атрибут стиля в свой документ, они могут изменять внешний вид вашей страницы по своему желанию. Я перечислил пару потенциальных атак, упорядоченных по возрастающей степени:
- Они могут превратить вашу страницу в розовый цвет и заставить ее выглядеть глупо.
- Они могут изменить текст вашей страницы, сделав ее похожей на то, что вы говорите что-то оскорбительное, что может оскорбить вашу аудиторию аудитории.
- Они могут создавать контент, созданный пользователями, так как ссылка, которую они предоставляют, отображается за пределами обычных мест, где люди ожидают увидеть пользовательский контент, что делает его официальным. (например, заменив кнопку "Вход" на вашем сайте со своей собственной ссылкой).
- Используя правила тщательно разработанного стиля, они могут отправлять любую информацию, включенную на страницу, в внешние домены, а также открывать или иным образом использовать эти данные для ваших пользователей.
Четвертый пример, когда информация, просочившаяся во внешние домены, может быть полностью предотвращена, несмотря на unsafe-inline
при условии, что ваши другие правила CSP никогда не позволят любому запросу обращаться в ненадежный или подстановочный домен. Но первые 3 всегда будут возможны, если вы пропустите блокировку атрибута стиля где-нибудь.
Майк Уэст сделал хороший разговор об этом для CSSConf несколько лет назад для еще нескольких примеров.