Можно ли сделать это безопасно?
Зависит от того, как вы определяете «безопасно». Внешняя таблица стилей может сделать вещи некрасивыми или сыграть махинации с существующими элементами управления на сайте. Вы не сможете предотвратить это, поскольку это будет невозможно обнаружить. Здесь - это хороший обзор вредоносных действий, которые можно совершить таким образом.
Кроме того, очевидно, что CSS может инициировать запросы к любому виду URL, установив background-image
или аналогичный. Браузер заметит, что URL-адрес не является допустимым ресурсом изображения, но запрос всегда будет выполняться. Таким образом, можно вызвать запрос на ввод пароля, который пользователь сайта может принять за свое приглашение к входу в систему.
Мне не известны какие-либо сценарии векторов атаки через CSS, хотя я почти уверен, что IE behavior
может быть одним из них. Я бы определенно избавился от них.
Существует вопрос, связанный с по переполнению стека , но ни одна из уязвимостей, указанных в принятом ответе, не работает с чисто внешними таблицами стилей.