的oEmbed規範中提到2種不同的發現一個URL的透過oEmbed內容的方式:oEmbed API端點和URL方案與鏈接標記有什麼不同?
- 知道該網站的API端點和傳遞,通過GET參數,網址,您想了解的信息,如果它匹配它聲明的URL模式。
- 通過
<link rel="alternate" type="application/json+oembed" ... />
(或text/xml+oembed
)HTML標題發現oEmbed版本的URL。
第二種方式似乎更通用,因爲您不必存儲和維護整個供應商列表。此外,提供商名單是中央互聯網的標誌,只有少數演員存在。這種方法難以擴展。
雖然我可以看到第一種方法的用途,但對於可以解析其他人可用的資源的網站來說。例如,我可以從網站Foo提供一個oEmbed版本的視頻頁面。但是,由於以下幾個原因,主要是與安全有關,我不會相信某人說「我可以爲你解析資源X」,除非X的作者確定了這一點,這使我們回到了方法2.
所以我的問題是:我在這裏錯過了什麼?第一種處理oEmbed的方法有什麼用?例如,爲什麼要存儲(並保持最新的)一系列端點和模式,如果您有一種通用的方式來發現它並且幾乎可以在互聯網上使用任何資源?
作爲一個非常密切相關的問題,我認爲可能同時被問到(如果我錯了,請糾正我):如果沒有爲oEmbed內容提供中央端點,會發生什麼情況,比如說,期望每個URL都有一個'?version = oembed'參數,它會返回oEmbed版本而不是標準版本?
如果我解釋其財產和你關心的DDoS攻擊,你可以做所有的,沒有透過oEmbed。因爲它,我沒有看到額外的漏洞。 至於XSS攻擊,是的,這就是爲什麼如果你允許被嵌入在網站上隨機的互聯網內容,您使用不同的域承載它的iframe(最好是潔淨的腳本它)。這適用於來自YouTube的內容以及一些隨機站點。無論信息來源是否知名,您都不會信任第三方內容。 – ravisorg