Я хочу разрешить пользовательские css, отправленные пользователями на моем веб-сайте.
Я знаю, что некоторые комбинации стилей могут быть небезопасными, например position:absolute
.
И все же вышесказанное не повредит, если мы обернем этот контент в div с position:relative
.
Я также слышал, что есть некоторые возможности для выполнения скрипта через css, но я не мог вспомнить или придумать что-либо.
Итак, мой вопрос:
- Какие из них можно считать безопасными?
- А что попадет в черный список?
В идеале я собираюсь написать функцию, которая будет принимать содержимое тегов style="*" и соответствующим образом очищать их.
Я бы также рассмотрел несколько советов, какой подход будет лучше:
- сопоставление и фильтрация небезопасных атрибутов из черного списка,
- или разрешение обходить только те, которые содержатся в белом списке (хотя список может стать огромным)
Если у вас есть какие-то обширные функции в вашей артиллерии - это правильное место, чтобы выплюнуть их! :-)
behavior
иexpression
IE будут первыми в списке. Однако я бы определенно предпочел белый список черному списку. Тем не менее, я не знаю, будет ли даже белый список охватывать все случаи. - person BoltClock   schedule 04.08.2012position:absolute
может быть небезопасным. Я понимаю, чтоbehavior
,expression
и свойства, которые принимают URL, могут быть небезопасными, ноposition
? - person bfavaretto   schedule 04.08.2012