Facebook Embedding Flaw: Allowing users to embed swfs [TH]

Embedding Flash on Facebook
หลายๆคนน่าจะเคยลองโพสลิ้งyoutube,vimeoหรืออะไรต่างๆ จะพบว่าfacebookจะดึงข้อมูลจากหน้ายูทุปนั้น แล้วสร้างลิ้ง พร้อมรูปภาพและปุ่มPlayพอกดPlayคลิปก็จะรันผ่านvideo playerของยูทูป
facebookอนุญาตให้เราสามารถใช้og metadataมาระบุself-hosted objectsต่างๆ ซึ่งยูทูปก็น่าจะใช้เทคนิคนี้หรืออะไรประมารนี้ในการembed playerของยูทูปในfacebook (ไม่รู้ว่าเฟสบุคเขียนให้ยูทุปหรือยังไง)
เอาเป็นว่าเราสามารถใช้หลักการเดียวกันในการembed flashอะไรก็ได้ในเฟสบุค เช่นgame .swf etc มันจะดูเหมือนว่าเราโพสลิ้งวิดีโอ จะมีปุ่มplayให้เหมือนยูทูป แต่พอกดplayแถนที่จะไปรันวิดีโอจะทำการรันไฟล์flashของเราแถน (typeอื่นๆยังไม่ได้ลอง)
การใช้OG Metadata facebookบังคุบว่าต้องมี requirement 5อย่างนี้
og:type, og:url og:title, og:image,fb:app_id
อ่านเพิ่มเติมได้ที่
https://developers.facebook.com/docs/opengraph/

หลักการก็ไม่มีอะไรมาก สร้างเว็ปเพจลิ้งและทำการลิ้งโดเมนกับapp
สิ่งที่เราต้องทำก็คือหลอกว่าไฟล์เราเป็นvideoนั้นเอง
ปกติพอจะให้facebook ดึงvideo playerเรามาdisplayก็แค่ระบุประมารนี้
<meta property=”og:video” content=”http://localhost/?url=blah.mp4″&gt;
อย่างที่บอกไปก่อนหน้านี้facebookอนุญาต ให้เราembed custom video playerเพื่อที่จะมารันvideo เลยallowให้เราใช้file typeให้เป็นflashได้ ซึ่งไม่กันอะไรเลย แถนที่จะใส่video playerเราก็ใส่ไฟล์flashของเราเข้าไปตามนี้
<meta property=”og:video” content=”https://dl.dropboxusercontent.com/u/206457679/boxhead2play.swf“>
<meta property=”og:video:type” content=”application/x-shockwave-flash”>
<meta property=”og:video:width” content=”800″>
<meta property=”og:video:height” content=”500″>
ทีนี้พอเราshare linkที่โฮสหน้านี้ เฟสบุคก็จะทำการdisplayเหมือนดูvideoธรรมดา พอกดplay flashเราก็จะถูกรันนั้นเอง

สำหรับใครสงสัยหลักการscrape dataของfacebookสามารถใช้toolตัวนี้ได้ในการเช็ค
https://developers.facebook.com/tools/debug
ตัวอย่างsource
http://pastebin.com/iz6mhx1B
Post from:
https://www.facebook.com/groups/2600Thailand/permalink/222781854548517/facebookgame

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s