Skip to main content

ทำความเข้าใจองค์ประกอบ IFRAME ใหม่ใน HTML5

รับค่า html attribute ด้วย .get() - วีดีโอสอน jQuery (อาจ 2025)

รับค่า html attribute ด้วย .get() - วีดีโอสอน jQuery (อาจ 2025)
Anonim

องค์ประกอบช่วยให้คุณสามารถฝังเว็บเพจอื่น ๆ ลงในเว็บเพจของคุณได้โดยตรง แต่เมื่อใช้ iframes มีประเด็นด้านความปลอดภัยและการออกแบบบางอย่างที่ไม่ได้ระบุไว้ใน HTML 4.01 HTML5 นำแอตทริบิวต์นี้มาใช้ใหม่ 3 องค์ประกอบเพื่อช่วยแก้ปัญหาดังกล่าว:

แอ็ตทริบิวต์ sandbox

Sandbox แอตทริบิวต์ของ IFRAME องค์ประกอบเป็นคุณลักษณะด้านความปลอดภัยที่มีประโยชน์มากของ iframes เมื่อคุณวางไว้ใน a IFRAME คุณจะสั่งให้ตัวแทนผู้ใช้ไม่อนุญาตคุณลักษณะที่อาจทำให้เกิดความเสี่ยงด้านความปลอดภัยแก่ไซต์และผู้ใช้ของไซต์

ตัวอย่างเช่น:

Sandbox = "" >

บอกเบราว์เซอร์ว่าไม่อนุญาตให้คุณลักษณะทั้งหมดที่อาจมีความเสี่ยงด้านความปลอดภัย โดยเฉพาะปลั๊กอินไม่ได้รับอนุญาต ไม่สามารถส่งแบบฟอร์มได้ Sscripts จะไม่ทำงานและลิงก์ภายนอก IFRAME ไม่ได้รับอนุญาต. สุดท้ายไม่อนุญาตให้เข้าถึงคุกกี้ที่เก็บข้อมูลในเครื่องและหน้าอื่น ๆ ในโดเมนเดียวกัน (ต้นทาง)

จากนั้นใช้ Sandbox ค่าคำหลักคุณสามารถเปิดใช้งานคุณลักษณะบางอย่างได้ คำหลักเหล่านี้คือ

  • ช่วยให้รูปแบบส่งแบบฟอร์ม
  • อนุญาตให้เดียวกันแหล่งกำเนิด- อนุญาตสคริปต์เพื่อเข้าถึงเนื้อหาเช่นคุกกี้จากโดเมนต้นทางเดียวกัน
  • อนุญาตให้สคริปต์- อนุญาตสคริปต์เพื่อดำเนินการในนี้ IFRAME
  • ช่วยให้บนนำทาง- อนุญาตให้ IFRAME ลิงก์และสคริปต์ไปที่ _top เป้า

ไม่ควรตั้งค่าทั้งสองอย่าง อนุญาตให้สคริปต์ และ อนุญาตให้เดียวกันแหล่งกำเนิด คำหลักด้วยกัน IFRAME. หากทำเช่นนี้หน้าฝังตัวสามารถลบ Sandbox แอตทริบิวต์ลบผลประโยชน์ด้านความปลอดภัยใด ๆ

แอตทริบิวต์ srcdoc

srcdoc attribute คือแอตทริบิวต์ที่ช่วยให้นักออกแบบเว็บสามารถควบคุม iframes รวมทั้งความปลอดภัยได้มากขึ้น แทนที่จะเชื่อมโยงไปยังเว็บเพจที่ URL อื่นนักออกแบบเว็บไซต์จะวาง HTML ไว้เพื่อแสดงใน IFRAME ข้างใน srcdoc คุณลักษณะ

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

โดยการวาง HTML ที่สร้างโดยแหล่งที่ไม่น่าเชื่อถือเช่นฟอร์มลงใน IFRAME คุณสามารถ "แซนด์บ็อกซ์" เนื้อหาที่ไม่น่าเชื่อถือและยังคงแสดงบนหน้าเว็บ ความคิดเห็นของ Blog เป็นตัวอย่าง บล็อกส่วนใหญ่มีเพียงจำนวน จำกัด ที่ผู้แสดงความคิดเห็นในแท็ก HTML สามารถใช้ในความคิดเห็นได้ แต่โดยการใส่ความคิดเห็นเหล่านั้นใน sandboxed IFRAME ใช้ srcdoc แอตทริบิวต์ความคิดเห็นอาจมีประสิทธิภาพมากขึ้นในขณะที่ยังช่วยปกป้องไซต์โดยรวม

ความปลอดภัยและ Iframes

แอตทริบิวต์สองข้อดังกล่าวมีความปลอดภัยสำหรับคุณ IFRAME องค์ประกอบ แต่ไม่ได้เป็นหลักฐานยืนยันไซต์ที่เป็นอันตรายทั้งหมด หากไซต์ที่เป็นอันตรายสามารถโน้มน้าวให้ผู้ใช้เข้าถึงเนื้อหาที่เป็นปฏิปักษ์โดยตรง (เช่นพิมพ์ URL ลงในเบราว์เซอร์) ระบบจะยังสามารถโจมตีได้

ถ้าเป็นไปได้ควรตั้งเนื้อหาที่อยู่ใน sandboxed IFRAME เป็น text / html-sandboxed ประเภท MIME

แอตทริบิวต์ที่ราบรื่น

ไม่มีรอยต่อ attribute เป็น boolean attribute ที่บอกให้เบราเซอร์แสดง IFRAME ราวกับว่ามันเป็นส่วนหนึ่งของเอกสารแม่ ถ้าคุณต้องการ IFRAME เพื่อแสดงผลได้อย่างราบรื่นเพียงใส่แอตทริบิวต์นี้ในอิลิเมนต์:

ไม่มีรอยต่อ >

แต่การทำ IFRAME ไม่มีรอยต่อเป็นมากกว่าเพียงแค่รูปลักษณ์เท่านั้น แต่ยังเป็นวิธีที่เพจโต้ตอบกับเฟรม ตัวอย่างเช่น:

  • ลิงก์ใน IFRAME จะเปิดขึ้นในหน้าต่างหลักเว้นแต่ IFRAME หน้ามีเป้าหมาย _self ชุด
  • CSS ใน IFRAME จะถูกเพิ่มลงในน้ำตกของเอกสารทั้งหมด
  • องค์ประกอบรากของ IFRAME เพจถือว่าเป็นบุตรของ IFRAME.
  • ความกว้างและความสูงของ IFRAME ตั้งอยู่ในลักษณะคล้ายกับว่าจะตั้งค่าองค์ประกอบระดับบล็อกอื่น ๆ อย่างไร
  • เมื่อเอกสารหลักถูกเรียกโดยเครื่องมือการแสดงคำพูดเช่นโปรแกรมอ่านหน้าจอ IFRAME จะอ่านได้โดยไม่ต้องประกาศเป็นเอกสารแยกต่างหาก
  • สคริปต์ใด ๆ ในเอกสารหลักจะมีผลต่อ IFRAME เอกสารในลักษณะเดียวกัน ตัวอย่างเช่นหากสคริปต์ระบุเฟรมทั้งหมดบนหน้าเว็บลิงก์ในส่วน IFRAME จะปรากฏเป็นอย่างดี

กล่าวอีกนัยหนึ่งคือ ไม่มีรอยต่อ แอตทริบิวต์ไม่มากเพียงแค่เอาเส้นขอบออกจาก IFRAME. หากคุณกำลังจะตั้งค่า a IFRAME เพื่อให้ราบรื่นคุณควรจะแน่ใจในเนื้อหาเพื่อไม่ให้คุณเพิ่มความเสี่ยงด้านความปลอดภัยใด ๆ ให้กับเว็บไซต์ของคุณโดยการฝังไซต์ที่เป็นอันตราย