Какие ограничения безопасности должны быть реализованы, чтобы разрешить пользователю загружать файл Javascript, управляющий анимацией холста?

Я хочу создать сайт, на котором пользователи могут загружать свои собственные анимации холста, чтобы их могли увидеть другие. Какие риски безопасности связаны с этим? Есть ли простой способ убедиться, что я получаю только функции холста, а не фрагменты вредоносного кода? Мысли? Спасибо.

РЕДАКТИРОВАТЬ: Что, если я помещу каждую анимацию в отдельный субдомен? Есть ли способ автоматизировать создание поддоменов всякий раз, когда пользователь загружает?


person dmoonman    schedule 23.04.2011    source источник


Ответы (2)


Что касается конкретных рисков, очевидным является возможность легко создать постоянную угрозу XSS. Это может легко сделать что угодно, от чтения файлов cookie пользователей (включая те, которые используются для идентификации их аутентифицированного сеанса) до перезаписи страницы или изменения CSS.

Это также открывает очень простую дверь для CSRF, что потенциально позволяет сценарию публиковать произвольные команды от имени жертвы. Кроме того, есть риск таких вещей, как кликджекинг и табнэппинг — возможных эксплойтов очень много!

Есть способы уменьшить эти угрозы, но сам факт того, что вы позволяете людям загружать произвольные скрипты, представляет собой огромный риск.

person Troy Hunt    schedule 24.04.2011

Javascript — это ОЧЕНЬ гибкий язык, и почти невозможно убедиться, что фактический код выполняется, если вы не проведете его очень глубокий анализ. Если вы разрешите загрузку Javascript, вы можете получить что угодно, и большая часть защиты, которую вы попытаетесь использовать, не будет работать.

В вашем случае вы могли бы позволить людям загружать последовательность анимации на каком-то пользовательском языке, который вы преобразуете в Javascript после его загрузки. Таким образом, вы можете лучше контролировать то, что выполняется.

person HoLyVieR    schedule 23.04.2011