วิดเจ็ต Google+ +1 แตกต่างจาก iframe อย่างไร


145

อย่างใดการโฮเวอร์เหนือวิดเจ็ต Google+ บวกหนึ่งสามารถแนะนำข้อเสนอประเภทเครื่องมือที่มีขนาดใหญ่กว่า<iframe>องค์ประกอบที่มีอยู่อย่างชัดเจน ฉันตรวจสอบ DOM เพื่อยืนยันแล้ว *

ขอบเขต iframe

ดังนั้น:

  1. อะไร? วิธี !?

  2. นี่ไม่ใช่โอกาสอันยิ่งใหญ่สำหรับ clickjacking หากใช้โดยประสงค์ร้าย (ลองนึกภาพคนที่ทำ MITM สำหรับวิดเจ็ตโซเชียลเหล่านี้!)

* ปรับปรุง: สิ่งที่ผมเห็นก็คือว่าข้อความคำแนะนำเครื่องมือ-Y ได้ในสองสร้างแบบไดนามิกiframe

คำตอบ:


181

ของ Google +1 เครื่องมือเป็นJavaScript ที่วิ่งบนเว็บไซต์ของคุณiframeที่เป็นอาคาร วิดเจ็ต JavaScript นี้ทำงานอยู่ในบริบทของเว็บไซต์ของคุณดังนั้นจึงไม่ได้ถูก จำกัด โดยกฎแหล่งกำเนิดดั้งเดิมสำหรับ iframes ดังนั้น JavaScript เครื่องมือนี้สามารถตั้งค่าสิ่งที่เหตุการณ์ DOM iframeมันต้องการบนไซต์แม่แม้ว่ามันจะดูเหมือนจะเป็นเพียงที่เรียบง่าย

อีกสิ่งหนึ่งที่ทำไม Google ใช้iframe? ทำไมไม่สร้างเพียงdivบนหน้า? ด้วยการเชื่อมโยงที่มาจากiframeโทเค็น CSRF (การร้องขอข้ามไซต์) สามารถฝังอยู่ในคำขอและไซต์แม่ไม่สามารถอ่านโทเค็นนี้และปลอมคำขอ ดังนั้นจึงiframeเป็นมาตรการต่อต้าน CSRF ที่อาศัยกฎแหล่งกำเนิดสินค้าเพื่อป้องกันตัวเองจากผู้ปกครองที่เป็นอันตราย

จากมุมมองของการโจมตีนี่เป็นเหมือน XSS (cross-site scripting) มากกว่า UI-Redress คุณให้สิทธิ์แก่ Google ในการเข้าถึงเว็บไซต์ของคุณและพวกเขาสามารถขโมยคุกกี้ของผู้ใช้หรือดำเนินการXmlHttpRequestsกับเว็บไซต์ของคุณหากพวกเขาเลือก (แต่คนจะฟ้องพวกเขาเพราะเป็นอันตรายและร่ำรวย)

ในสถานการณ์เช่นนี้คุณต้องไว้วางใจ Google แต่ Google จะไม่ไว้ใจคุณ

มีวิธีการในการบรรเทาผลกระทบต่อความเป็นส่วนตัวของเหล่านี้บนเว็บโรคจิต


สิ่งที่ดี - ฉันขอขอบคุณความคิดเห็นของคุณอีกครั้ง: XSS ซึ่งทำให้รู้สึกมาก แต่ฉันก็ยังไม่แน่ใจเกี่ยวกับบางสิ่ง เนื้อหาที่เป็นปัญหาดูเหมือนไม่อยู่ภายใน<iframe>ซึ่งคุณแนะนำอาจเป็นจริง (และอธิบายว่าเป็นไปได้อย่างไร) แต่ดูเหมือนจะไม่เป็นเช่นนั้นในกรณีนี้จากการตรวจสอบ DOM และมันจะเปิดเผยชื่อและที่อยู่ Gmail ของฉันกับพ่อแม่ที่เป็นอันตราย (ยกเว้นกรณีที่ห่อในครั้งที่สองiframe)!
Alan H.

3
@Alan H. ใช่พวกเขากำลังทำสิ่งที่แปลกประหลาดด้วย iframe แบบไดนามิก คุณคลิก +1 คุณจะได้รับหน้าต่างที่คุณเพิ่มความคิดเห็น หากคุณโหลด firebug และตรวจสอบองค์ประกอบนั้นคุณจะได้รับ iframe src สำหรับ plusone.google.com/u/0 / _ / + / fastbutton? url = ... iframe นี้มีโทเค็น CSRF สำหรับส่งไปยัง google +
rook

ในบางกรณีคุณอาจหลีกเลี่ยงการขโมยคุกกี้โดยการตั้งค่าด้วย httponly
seppo0010

1
@ seppo0010 ใช่ แต่นั่นไม่ได้หยุด XHR
rook

3

Google ใช้ iFrames เพื่อป้องกัน "มาตรฐาน DIV ที่รั่ว" กล่องโต้ตอบปิดห้องสมุดของพวกเขาทำสิ่งเดียวกัน อาจเป็นเพียงเพื่อให้เนื้อหาอื่นไม่สามารถแทรกลงในปุ่ม +1 http://closure-library.googlecode.com/svn/trunk/closure/goog/demos/dialog.html


ตามที่ Rook อธิบายไว้ในคำตอบของเขา <iframe> จะถูกใช้เพื่อป้องกันไซต์โดยใช้โค้ดวิดเจ็ต Google +1 จากการใช้การโจมตี CSRF เพื่อคลิกลิงก์ด้วยตัวมันเอง นั่นคือส่วนที่ Google ไม่ไว้วางใจคุณ
Mikko Rantalainen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.