محتویات، امنیت و ویژگی های طراحی IFRAME
این عنصر به شما امکان می دهد صفحات دیگر وب را مستقیما به صفحه وب خود جاسازی کنید. اما هنگام استفاده از iframes برخی از مسائل امنیتی و طراحی وجود دارد که در HTML 4.01 خطاب نشده است. HTML5 به سه عنصر جدید برای این عنصر به ارمغان می آورد:
ویژگی Sandbox
ویژگی sandbox عنصر IFRAME یک ویژگی امنیتی بسیار مفید frame ها است. هنگامی که شما آن را در یک عنصر IFRAME قرار می دهید، دستور دهنده عامل کاربر برای غیر فعال کردن ویژگی هایی که ممکن است یک خطر امنیتی برای سایت و کاربران آن را باعث شود.
مثلا:
به مرورگر می گوید که تمام ویژگی هایی که ممکن است یک خطر امنیتی باشد را غیرفعال کند. به طور خاص، پلاگین ها مجاز نیستند. فرم ها را نمی توان ارائه داد. اسکریپت ها اجرا نخواهند شد و پیوندی خارج از IFRAME مجاز نیستند. در نهایت، دسترسی به کوکی ها، ذخیره سازی محلی و سایر صفحات در همان دامنه (مبدا) مجاز نیست.
سپس، با استفاده از مقادیر کلید واژه ی sandbox، می توانید برخی از ویژگی های مجدد را دوباره فعال کنید. این کلمات کلیدی:
- اجازه دادن به فرم ها - ارسال فرم بسیار کم
- اجازه می دهد یک اسکریپت به همان مبدأ اجازه برای دسترسی به محتوا مانند کوکی ها از یک دامنه منشاء همان
- اسکریپت اجازه اسکریپتها در این IFRAME اجرا می شود
- allow-top-navigation-اجازه لینک ها و اسکریپت های IFRAME را به هدف _top
این یک ایده خوب نیست که هر دو اسکریپت اجازه و یکسانی را با هم در همان IFRAME تنظیم کنند. اگر این کار را انجام دهید، صفحه جاسازی شده میتواند ویژگی ویژگی Sandbox را به طور کامل حذف کند و مزایای امنیتی را نفی کند.
مشخصه srcdoc
ویژگی srcdoc یک خصیصه است که طراح وب را به کنترل بیشتری بر فریم ها و همچنین امنیت بیشتر می دهد. به جای پیوند دادن به یک صفحه وب در یک URL دیگر، طراح وب، HTML را قرار می دهد که در IFRAME درون ویژگی srcdoc نمایش داده می شود.
در ابتدا، شما ممکن است فکر کنید، "چگونه این هر کدام متفاوت از قرار دادن HTML در صفحه راست؟" و در برخی از راه، آن است که به شدت متفاوت است.
اما شما باید یکی از توابع عنصر IFRAME را در نظر داشته باشید که این است که داده های غیرقابل اعتماد را جدا از سایر نقاط سایت نگه دارید.
با قرار دادن HTML که توسط یک منبع نامعلوم، مانند یک فرم، به یک IFRAME ایجاد شده است، می توانید محتوای غیرقابل اعتماد را "sandbox" ایجاد کنید و هنوز هم در صفحه نمایش داده می شود. نظرات وبلاگ یک مثال است. اکثر وبلاگ ها تنها تعداد محدودی از تگ های HTML را دارند که نظرات می توانند در نظرات خود استفاده کنند. اما با قرار دادن این نظرات در IFRAME سندباکس با استفاده از ویژگی srcdoc، نظر می تواند بیشتر باشد و در عین حال حفاظت از سایت به طور کلی.
امنیت و فریم ها
دو ویژگی فوق دارای امنیت برای عناصر IFRAME شما هستند، اما آنها در مقابل تمام سایت های مخرب اثبات نمی شوند. اگر سایت مخرب می تواند کاربر را به طور مستقیم به محتوای خصمانه دسترسی داشته باشد (مانند تایپ URL به مرورگر خود)، آنها هنوز هم می توانند مورد حمله قرار گیرند.
در صورت امکان بهتر است که محتویاتی را که در IFRAME سندباکس به عنوان نوع MIME متن / html-sandboxed وجود دارد تنظیم کنید.
مشخصه بدون درز
خصیصه بدون درز یک خصیصه بولی است که به مرورگر نشان می دهد IFRAME را به عنوان اینکه بخشی از سند پدر و مادر است. اگر می خواهید IFRAME شما یکپارچه نمایش داده شود، فقط این ویژگی را در عنصر ذکر کنید:
اما IFRAME ساخت یکپارچه بیش از یک نگاه است، بلکه این نیز این است که صفحه با فریم تعامل دارد. مثلا:
- لینک در IFRAME در پنجره پدربزرگ باز خواهد شد، مگر اینکه صفحه IFRAME دارای هدف _SELF است.
- CSS در IFRAME به آبشار کل سند اضافه می شود.
- عنصر ریشه صفحه IFRAME یک فرزند IFRAME محسوب می شود.
- عرض و ارتفاع IFRAME به همان شیوه تنظیم می شود که چگونه دیگر عناصر بلوک سطح تنظیم می شوند.
- هنگامی که سند پدر و مادر با ابزار رندر گفتاری مانند یک خواننده صفحه نمایش مشاهده می شود، IFRAME بدون اعلام آن به عنوان یک سند جداگانه خوانده خواهد شد.
- هر اسکریپت روی اسناد پدر و مادر بر روی سند IFRAME به همان شیوه تاثیر می گذارد. برای مثال، اگر یک اسکریپت تمام فریم ها را در صفحه ذکر کرده باشد، لینک های IFRAME نیز لیست می شوند.
به عبارت دیگر، ویژگی بدون درز خیلی بیشتر از حذف مرزها از IFRAME است. اگر قصد دارید IFRAME را به صورت یکپارچه تنظیم کنید، باید از محتویات بسیار اطمینان داشته باشید تا جاسازی یک سایت مخرب هیچ خطر امنیتی را به وب سایت خود اضافه نکنید.