Как обезопасить систему с полным клиентским доступом к HTML?

Есть задача — дать полный доступ клиенту к своему html-контенту. Как tumblr.
Вопрос в том, какие есть угрозы в этом случае и какие средства защиты.

Основная угроза имхо – воровство куки, доступ к админке других юзеров.

Защита:
-httponly cookies
-отдельные поддомены для каждого «автора» и изоляция кук в поддоменах

Есть ли еще какие-то угрозы и методы защиты?
Есть ли способ единой аутентификации при такой схеме или придется аутентифицироваться на каждом отдельном поддомене?
  • Вопрос задан
  • 3394 просмотра
Пригласить эксперта
Ответы на вопрос 5
@egorinsk
Если вы даете полный доступ, что мешает злоумышленнику показать страницу «пожалуйста, в целях безопасности введите свой пароль заново»? Или установить на странице комплект вредоносных программ, внедряющихся в систему при открытии страницы за счет уязвимости в браузере?

Даже технически грамотного пользователя можно поймать на этом.
Ответ написан
frostosx
@frostosx
1) вырезать регулярными выражением все скрипты — очевидно
2) вырезать стили — чтобы свои контролы не ставили поверх наших
3) вырезать/дополнять_префиксами классы и id из html-элементов — чтобы клиентские элементы не могли использовать «наши» стили и обработчики
Ответ написан
merlin-vrn
@merlin-vrn
HTTPS и клиентские сертификаты. Аутентификация по сертификату (защита от кражи — можно хоть токены использовать), в результате чего получаем уникальный идентификатор пользователя — commonName из сертификата. При проверке прав (авторизации) привязывайтесь к commonName.

Общая аутентификация будет хоть на нескольких несвязанных доменах, и им даже иметь какую-то общую базу необязательно — общим на них будет только корневой сертификат вашего ЦС, которым подписаны все сертификаты клиентов.

Пароли в принципе тоже не обязательны, можно внедрить — тогда общая база будет нужна, а аутентификация получится двухфакторая.
Ответ написан
Как вариант, фильтрация пользовательского HTML, например, при помощи HTML Purifier и отдельные поддомены.
Ответ написан
frostosx
@frostosx
Другие языки разметки годятся? Я имею в виду BBCode.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы