2012-12-13 50 views
1

我想寫一個工具來檢測遠程網站是否使用使用PHP的Flash。到目前爲止,我已經編寫了一個腳本,用於檢測嵌入或對象是否存在,從而指示可能已安裝它,但某些站點會對其代碼進行加密,從而導致此功能無法使用。如何檢測遠程網站是否使用閃存?

include_once('simple_html_dom.php'); 
$flashTotalCount = 0; 
function file_get_contents_curl($url){ 

     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_HEADER, 0); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);  
     $data = curl_exec($ch); 
     curl_close($ch);  
     return $data; 
    } 

    $html = file_get_contents_curl($url); 
    $doc = new DOMDocument(); 
    @$doc->loadHTML($html); 

foreach($html->find('embed') as $pageEmbed){ 
$flashTotalCount++; 
} 

foreach($html->find('object') as $pageObject){ 
$flashTotalCount++; 
} 

if($flashTotalCount == 0){ 
echo "NO FLASH";  
} 
else{ 
echo "FLASH"; 
} 

會有人的途徑之一知道要檢查,看是否有網站使用Flash或如果正在使用的那一剎那可能獲取的頭信息等

任何建議將是有益的。

+1

它是否會崩潰或泄漏內存?它使用Flash ...但認真查找'object'元素並查看擴展名是否爲'.swf'等可能工作正常。 – thatidiotguy

+1

你可以看看swfobject庫的javascript src文件以獲得相當不錯的檢測率,但當然你永遠無法檢測到它,任何網站都可以使用隱藏在一些縮小的javascript文件中的自定義js代碼來動態地嵌入flash – Esailija

+0

您需要檢查對象大小,因爲您可以在Flash或導航菜單中獲取添加內容,而網站不使用Flash來顯示其內容 – MAXIM

回答