Требуется: гибкая, но безопасная пользовательская техника встраивания HTML - PullRequest
1 голос
/ 25 января 2009

Наше программное обеспечение управляет библиотеками, музеями, архивами и т. Д. Мы хотели бы, чтобы пользователи (а именно каталогизаторы, а не посетители) добавляли встраиваемый контент, такой как карты Google, видео YouTube и т. Д. Мы хотели бы, чтобы решение быть максимально гибким, поскольку каждый поставщик встроенного контента имеет свой собственный формат. OTOH, мы бы не хотели, чтобы пользователи вводили необработанный HTML, так как это создаст угрозу безопасности XSS, а в случае ошибочного HTML может испортить нашу окружающую веб-страницу.

Я начал изучать Карты Google сегодня и не смог найти способ справиться с этим. Я не хочу позволять пользователям просто копировать встраиваемый фрагмент HTML в элемент; Я не могу вставить предоставленный URL-адрес ссылки, так как Google не разрешит этого; и я не могу позволить пользователю указывать координаты, поскольку я не хочу использовать API Google Maps JS (что означает предоставление встроенного решения, которое нам придется поддерживать).

Вопрос не совсем о Google Maps, но Google Maps довольно представительный. Я хотел бы услышать предложения по гибкой, но безопасной технологии встраивания HTML.

Спасибо, Эран

Ответы [ 2 ]

2 голосов
/ 25 января 2009

Будет ли Каха работать на вас?

Каха (произносится "Ка-ха") является "виртуальным iframes ": позволяет ставить ненадежный сторонний HTML и JavaScript встроен в вашу страницу и все еще быть в безопасности. Каха

  • дает более строгий контроль над тем, что может делать код:
    • нет перенаправлений на фишинговые страницы: объект окна, который имеет ненадежный код, является поддельным, созданным содержащейся страницей
    • без вредоносных программ: все запросы к URL-адресам проксируются
    • нет XSS: динамическая очистка HTML
  • дает ненадежному коду больше возможностей, чем это безопасно для кода, в настоящее время находящегося в фреймах. Вот несколько возможностей:
    • плавающие рамки («информационные окна»)
    • рамки не обязательно должны быть прямоугольными
    • кадры могут общаться без текущих неудобных протоколов
    • читатель может транслировать географическую информацию о текущей статье; гаджет с картами переходит на другое место, а гаджет новостей - с местными историями, а гаджет погоды - с прогнозом погоды
    • аналогично для финансовой или развлекательной информации
    • расширяемая подсветка синтаксиса может иметь плагины, которые могут размечать текст, но не пропускать содержимое на другой веб-сайт
    • может быть битовым каналом (может только отправлять информацию) или кодовым каналом (может отправлять функции)
    • страница хостинга может контролировать, кто с кем общается
2 голосов
/ 25 января 2009

уценка или другой легкий язык разметки для разметки; пользовательские макросы для встраивания разрешенных фрагментов (смотрите, как это делается на wordpress.com для встраивания видео на YouTube)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...