IFrame และ Frame แตกต่างกันอย่างไร


92

เมื่อดูตัวเลือกสำหรับการฝังหน้า 3D Secure ในแบบฟอร์มคำสั่งซื้อของฉันฉันพบสิ่งต่อไปนี้:

"ไซต์การค้าบางแห่งจะใช้หน้าเบราว์เซอร์แบบเต็มในการตรวจสอบสิทธิ์แทนที่จะใช้เฟรม (ไม่จำเป็นต้องเป็น iFrame ซึ่งเป็นวัตถุที่มีความปลอดภัยน้อยกว่า)"

จากhttp://en.wikipedia.org/wiki/3-D_Secure

ใครช่วยบอกฉันหน่อยได้ไหมว่าทำไม iframe ถึงมีความปลอดภัยน้อยกว่าและทำให้เกิดปัญหาเมื่อเทียบกับเฟรมปกติ และอะไรคือความแตกต่างพื้นฐาน?

วิธีที่ฉันเห็นiframeคือหนทางที่จะไป


ได้ดูที่นี่
Daniel Dušek

2
<frame>เลิกใช้แล้วใน HTML5 ดังนั้นคุณจึงไม่ควรใช้อีกต่อไป
Michael Hays

คำตอบ:


66

ความแตกต่างคือ iframe สามารถ "ลอย" ภายในเนื้อหาในเพจได้นั่นคือคุณสามารถสร้างเพจ html และวางตำแหน่ง iframe ไว้ภายในได้ สิ่งนี้ช่วยให้คุณมีหน้าและวางเอกสารอื่นลงในนั้นได้โดยตรง A framesetช่วยให้คุณสามารถแบ่งหน้าจอออกเป็นหน้าต่างๆ (แนวนอนและแนวตั้ง) และแสดงเอกสารที่แตกต่างกันในแต่ละส่วน

อ่านสรุปการรักษาความปลอดภัย IFrames


ดูเหมือนว่าปัญหาด้านความปลอดภัยเหล่านั้นจะไม่มีผลกับฉันเนื่องจากฉันกำลังอ้างถึงไซต์ที่ปลอดภัยโดยตรง (และเป็นไซต์ที่ฉันเชื่อถือ 100%) จึงไม่เห็นว่าผู้โจมตีจะก่อวินาศกรรมได้อย่างไร
Duncan

14

IFrame เป็นเพียง "กรอบภายใน" สาเหตุที่ถือว่าปลอดภัยน้อยกว่า (มากกว่าการไม่ใช้เฟรมใด ๆ เลย) เนื่องจากคุณสามารถใส่เนื้อหาที่ไม่ได้มาจากโดเมนของคุณ

ทั้งหมดนี้หมายความว่าคุณควรไว้วางใจสิ่งที่คุณรวมไว้ใน iFrame หรือเฟรมปกติ

เฟรมและ IFrames มีความปลอดภัยเท่ากัน (และไม่ปลอดภัยหากคุณรวมเนื้อหาจากแหล่งที่ไม่น่าเชื่อถือ)


คุณสามารถรวมเนื้อหาที่ไม่ได้มาจากโดเมนของคุณในเฟรมปกติได้เช่นกัน
Quentin

@ เดวิดฉันควรจะระบุอย่างชัดเจน ฉันเดาว่าฉันบอกเป็นนัย ๆ แต่ไม่เคยพูดถึงมันจริงๆ ฉันจะอัปเดตคำตอบเพื่อให้ชัดเจนยิ่งขึ้น ขอบคุณ!
Dan Herbert

i ใน iframe ย่อมาจาก inline
Simon Zyx

7

iframes ถูกใช้มากในการรวมเพจที่สมบูรณ์ เมื่อเพจเหล่านั้นโฮสต์บนโดเมนอื่นคุณจะพบปัญหาเกี่ยวกับการเขียนสคริปต์ข้ามฝั่งและสิ่งต่างๆ มีวิธีแก้ไขปัญหานี้

เฟรมถูกใช้เพื่อแบ่งเพจของคุณออกเป็นหลาย ๆ ส่วน (เช่นเมนูการนำทางทางด้านซ้าย) ไม่แนะนำให้ใช้อีกต่อไป


"เฟรมใช้เพื่อทำให้หน้าของคุณดูดีขึ้นในหลาย ๆ ส่วนเช่นเช่นเมนูทางด้านซ้าย" ยุค 90 เรียกและอยากให้คุณกลับมา คุณไม่ควรใช้เฟรมสำหรับสิ่งนี้ เป็นเรื่องปกติที่จะทำเช่นนั้นเมื่อหลายปีก่อน แต่ตอนนี้คุณควรใช้ serverside include และ css เป็นส่วนใหญ่เพื่อสร้างเมนูของคุณ ช่วยให้มีความยืดหยุ่นมากขึ้นในระยะยาว velvetblues.com/web-development-blog/…มีข้อมูลบางอย่างเกี่ยวกับเรื่องนี้
Esteban Küber

13
ฉันรู้ :) ฉันแค่อยากจะอธิบายว่าเฟรม "ถูก" ใช้เมื่อใด (100 ปีที่แล้ว;))
Ivo

5

เหตุผลเดียวที่ฉันคิดได้มีอยู่ในบทความวิกิที่คุณอ้างถึงเพื่อพูดถึงคู่รัก ...

"ระบบ" Verified by Visa "ทำให้เกิดการวิพากษ์วิจารณ์เนื่องจากเป็นเรื่องยากสำหรับผู้ใช้ที่จะแยกความแตกต่างระหว่างหน้าต่างป๊อปอัป Verified by Visa ที่ถูกต้องตามกฎหมายหรืออินไลน์เฟรมกับไซต์ฟิชชิงที่หลอกลวง"

"ในปี 2008 เว็บเบราว์เซอร์ส่วนใหญ่ไม่มีวิธีง่ายๆในการตรวจสอบใบรับรองความปลอดภัยสำหรับเนื้อหาของ iframe"

หากคุณอ่านส่วนการวิจารณ์ในบทความจะให้รายละเอียดข้อบกพร่องด้านความปลอดภัยที่อาจเกิดขึ้นทั้งหมด

มิฉะนั้นความแตกต่างเพียงอย่างเดียวคือความจริงที่ว่าIFrameเป็นเฟรมอินไลน์และกรอบเป็นส่วนหนึ่งของเฟรม ซึ่งหมายถึงปัญหาการจัดวางมากกว่าสิ่งอื่นใด!


4

กรอบอินไลน์เป็นเพียง "กล่อง" กล่องเดียวและคุณสามารถวางไว้ที่ใดก็ได้บนไซต์ของคุณ เฟรมคือ 'กล่อง' จำนวนมากที่รวมกันเพื่อสร้างไซต์เดียวที่มีหลายหน้า


-1

แม้ว่าความปลอดภัยจะเหมือนกัน แต่แอปพลิเคชั่นหลอกลวงอาจหลอกล่อผู้ใช้โดยใช้ iframe ได้ง่ายกว่าเนื่องจากมีความยืดหยุ่นมากกว่าเกี่ยวกับตำแหน่งที่วางเฟรม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.