2012-01-17 31 views
2

我有一個項目,我們正在創建一個基於html5的動態視頻播放器,並帶有一堆Ajax控件和功能。目的是這個播放器將被其他域使用。我們的老玩家使用閃光燈,可以很容易的域鎖,但現在有任何方法在HTML5中做域鎖定?HTML5域名鎖定?

請記住,這不僅僅是視頻本身,我們也希望爲我們的ajax控件加載html內容。似乎iframe是這個明顯的選擇,但是沒有辦法做域鎖定。

任何想法?

+4

請在此上下文中定義「域鎖定」。這可能意味着幾件事情...... – DaveRandom 2012-01-17 18:23:22

+0

您發佈到「wild」的HTML和JS將始終被讀取並進行反向工程 - 因爲與flash不同的源代碼處於非常可讀的視圖。即使是YouTube視頻,無論他們如何隱藏網址以及其他參數,視頻網址仍然被螢火蟲等工具捕獲。 – Joseph 2012-01-17 18:27:06

+0

http://stackoverflow.com/questions/958997/frame-buster-buster-buster-code-needed – c69 2012-01-17 18:28:01

回答

1

你可以使用上面的函數,但它很明顯它在做什麼,所以任何人都可以刪除域鎖。

那裏有服務,將您的網頁鎖定到域名,我知道兩個我的頭頂。

jscrambler.com - 這是一個付費工具,但如果您只想鎖定您的域名,它可能有點矯枉過正。

jslock.it - 這是一個免費的域名鎖定工具,我在幾乎所有的網絡項目中都使用它。

1

嘗試閱讀REFERER標題,如果該網站未列入黑名單,則不要顯示播放器。

1

我來到這裏尋找同樣的事情。但我認爲我有一個解決的辦法。 我發現sofar的最佳方式是去掉其http://的location.href,然後檢查白名單域的前幾個字符。所以:

if(checkAllowedDomains()) 
    { 
     initApplication(); 
    } 
    else 
    { 
     // it's not the right domain, so redirect them! 
     top.location.href="http://www.snoep.at"; 
    } 

    function checkAllowedDomains() 
    { 
     var allowed_domains=new Array(); 
     allowed_domains.push("www.snoep.at"); 
     allowed_domains.push("www.makinggames.nl"); 
     allowed_domains.push("www.google.com"); 
     // add whatever domain here! 
     var domain=top.location.href; 
     domain.replace('http://',''); 
     var pass=false; 
     for(i=0;i<allowed_domains.length;i++) 
     { 
      var shortened_domain=domain.substr(2,allowed_domains[i].length); 
      if(shortened_domain.indexOf(allowed_domains[i])!=-1) 
      { 
       pass=true; 
      } 
     } 
    } 

這段代碼檢查幾個allowed_domains,你可以很容易地擴展陣列。 這是代碼的問題,它非常易讀。所以,我建議你通過一個js-minimizer來使其不那麼明顯,並將其包含在頁面上的每個js中。 InitApplication()是一個啓動頁面或應用程序的函數。因爲您將http://(可能不存在或不存在)的位置去掉,然後僅檢查允許的域的特定長度(包括WWW!),您排除了可能看起來像子域的子域像這樣:google.com.mydomain.com並扔掉支票!

希望這會有所幫助。