Значение атрибута sandbox iframe HTML5
Я читал атрибут sandbox
HTML5 для <iframe>
s. Согласно документации атрибут sandbox
позволяет разработчику выборочно ограничивать, какие действия можно выполнить в <iframe>
. Является ли атрибут "песочница" чисто мерой безопасности? Атрибут sandbox
позволяет веб-дизайнерам внедрять какие-либо новые функции, и если да, то кто-нибудь может указать на какие-либо примеры?
Ответы
Ответ 1
Ну, это чисто функция безопасности, но она также позволяет новые функции. Возьмем, например, включение стороннего (пользовательского) контента (например, HTML файлов). Традиционно вам нужно будет настроить отдельный домен, из которого вы будете обслуживать этот контент, но теперь вы можете просто обслуживать его там, где хотите, и обрабатывать его, как если бы это было из отдельного домена.
Кроме того, это может помешать этому третьему лицу делать определенные вещи, которые вы не могли бы предотвратить раньше:
-
allow-top-navigation
: Предотвращение его взлома -
allow-pointer-lock
: предотвращение захвата курсора в заложники -
allow-popups
: Предотвращение его прорыва через всплывающие окна -
allow-scripts
: просто блокирование всех скриптов (также может быть выполнено через CSP)
Реалистично сочетание атрибута sandbox
сочетании с контролируемыми заголовками CSP дает невероятный объем управления для запуска стороннего кода в безопасной среде. Это еще не 100%, но мы приближаемся.
Ответ 2
Песочница действительно может быть очень удобной в тестировании. Рассмотрим следующее:
tester.html
<script> document.cookie='foo=bar' </script>
<iframe src=testee.html>
testee.html
<script> console.log(document.cookie) </script>
При загрузке tester.html вы увидите на консоли "foo=bar"
который был сброшен testee.html.
Теперь добавьте в iframe
атрибут sandbox
и файл cookie - песочница создала отдельную среду выполнения для testee.html, где она не получает загрязнения cookie с других страниц, которые были/открыты в браузере во время процесса разработки. Поэтому, когда вам нужна стерильная тестовая кровать, но она не может или не хочет очищать кеш браузера, это быстрое и простое решение.
Ответ 3
Атрибут sandbox не дает никаких дополнительных функций, он ограничивает функциональность iframe. Единственная причина его использования - это мера безопасности.
Ответ 4
sandbox
iframe является исключительно функцией безопасности. Хорошим ресурсом всегда является спецификация W3 HTML5.
Когда атрибут установлен, содержимое обрабатывается как уникальное происхождение, формы, скрипты и различные потенциально раздражающие API-интерфейсы отключены, ссылки не позволяют настраивать другие контексты просмотра, а плагины защищены.