В чем разница между IFrame и Frame?

91

Рассматривая варианты встраивания страницы 3D Secure в мою форму заказа, я обнаружил следующее:

«Некоторые коммерческие сайты будут посвящать полную страницу браузера аутентификации, а не использовать фрейм (не обязательно iFrame, который в любом случае является менее безопасным объектом)».

из http://en.wikipedia.org/wiki/3-D_Secure

Может ли кто-нибудь рассказать мне, почему фреймы iframe менее безопасны и вызывают проблемы, в отличие от обычных фреймов? А в чем основные отличия?

Как я это вижу, это то, iframeчто нужно делать.

Дункан
источник
Взгляните сюда .
Даниэль Душек
2
<frame>устарел в HTML5, поэтому вам больше не следует его использовать.
Майкл Хейс

Ответы:

65

Разница в том, что iframe может «плавать» внутри содержимого на странице, то есть вы можете создать html-страницу и разместить внутри нее iframe. Это позволяет вам иметь страницу и размещать на ней другой документ. A framesetпозволяет разделить экран на разные страницы (по горизонтали и вертикали) и отображать разные документы в каждой части.

Прочтите обзор безопасности IFrames .

рахул
источник
Не похоже, что эти проблемы с безопасностью применимы ко мне, поскольку я бы напрямую ссылался на защищенный сайт (и тот, которому я доверяю на 100%), поэтому не понимаю, как злоумышленник может саботировать это?
Дункан
14

IFrame - это просто «внутренний фрейм». Причина, по которой его можно считать менее безопасным (чем вообще не использовать какие-либо фреймы), заключается в том, что вы можете включать контент, который не исходит из вашего домена.

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

Фреймы и IFrames одинаково безопасны (и небезопасны, если вы включаете контент из ненадежного источника).

Дэн Герберт
источник
Вы также можете включать в обычные фреймы контент, который не принадлежит вашему домену.
Quentin
@ Дэвид, мне, наверное, следовало заявить об этом прямо. Думаю, я имел в виду это, но никогда не говорил об этом. Я обновлю свой ответ, чтобы прояснить это. Благодарность!
Дэн Герберт
i в iframe на самом деле означает inline
Саймон Зикс
7

iframes часто используются для включения полных страниц. Когда эти страницы размещаются в другом домене, возникают проблемы с кросс-сайтом и прочим. Есть способы исправить это.

Фреймы использовались для разделения вашей страницы на несколько частей (например, меню навигации слева). Их использование больше не рекомендуется.

Иво
источник
«Фреймы используются, чтобы разделить вашу страницу на несколько частей. Как, например, меню слева». 90-е зовут тебя обратно. Не стоит использовать для этого рамки. Это было обычным делом несколько лет назад, но теперь вы должны большую часть времени использовать серверные включения и CSS для создания своего меню. Это обеспечивает гораздо большую гибкость в долгосрочной перспективе. velvetblues.com/web-development-blog/… есть некоторая информация по этому поводу.
Эстебан Кюбер,
13
Я знаю :) Я просто хотел объяснить, где "использовались" кадры (100 лет назад;))
Иво
5

Единственные причины, о которых я могу думать, на самом деле в вики-статье, на которую вы ссылались, упомянули пару ...

«Система« Verified by Visa »вызвала некоторую критику, поскольку пользователям трудно отличить законное всплывающее окно« Verified by Visa »или встроенный фрейм от мошеннического фишингового сайта».

«с 2008 года большинство веб-браузеров не предоставляют простой способ проверки сертификата безопасности на содержимое iframe»

Если вы прочитали в статье раздел « Критика », в нем подробно описаны все потенциальные недостатки безопасности.

В остальном единственная разница заключается в том, что IFrame является встроенным фреймом, а Frame - частью Frameset . Что означает больше проблем с макетом, чем что-либо другое!

Джеймс
источник
4

Встроенный фрейм - это всего лишь одна «коробка», и вы можете разместить ее в любом месте вашего сайта. Фреймы - это набор «коробок», собранных вместе, чтобы создать один сайт с множеством страниц.

хан ифат
источник
-1

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

user1213898
источник