2010-04-20 51 views
10

今天做一些網絡維護時,我注意到我的GoDaddy託管帳戶在名爲「dbboon」的根級別上有一個奇怪的新文件夾,裏面有一個文件,稱爲代理.PHP。它的代碼如下所示,似乎是某種代理功能。神祕的dbboon文件夾與我的godaddy帳戶上的proxy.php文件

我有點困擾,因爲我沒有把它放在那裏。我GOOGLE了所有這些瞭解更多,但沒有找到任何東西,除了代理文件碰巧也存儲在pastebin.com:http://pastebin.com/PQsSPbCr

我打電話給GoDaddy,他們證實它屬於他們,說這是由他們的高級主持小組出於測試目的,但沒有任何更多的信息。 我覺得這一切都很奇怪:爲什麼他們會在我的文件夾中放一些東西而沒有給我提醒,爲什麼他們需要做這樣的事情?

有人對此有所瞭解嗎?

<?php 

$version = '1.2'; 

if(isset($_GET['dbboon_version'])) { 
echo '{"version":"' . $version . '"}'; 
exit; 
} 

function dbboon_parseHeaders($subject) { 

global $version; 

$subject = trim($subject); 
$parsed = Array(); 
$len = strlen($subject); 
$position = $field = 0; 
$position = strpos($subject, "\r\n") + 2; 

while(isset($subject[$position])) { 

$nextC = strpos($subject, ':', $position); 
$fieldName = substr($subject, $position, ($nextC-$position)); 
$position += strlen($fieldName) + 1; 
$fieldValue = NULL; 

while(1) { 
    $nextCrlf = strpos($subject, "\r\n", $position - 1); 
    if(FALSE === $nextCrlf) { 
    $t = substr($subject, $position); 
    $position = $len; 
    } else { 
    $t = substr($subject, $position, $nextCrlf-$position); 
    $position += strlen($t) + 2; 
    } 

    $fieldValue .= $t; 
    if(!isset($subject[$position]) || (' ' != $subject[$position] && "\t" != $subject[$position])) { 
    break; 
    } 
} 

$parsed[strtolower($fieldName)] = trim($fieldValue); 
if($position > $len) { 
    echo '{"result":false,"error":{"code":4,"message":"Communication error, unable to contact proxy service.","version":"' . $version . '"}}'; 
    exit; 
} 
} 
return $parsed; 
} 

if(!function_exists('http_build_query')) { 
function http_build_query($data, $prefix = '', $sep = '', $key = '') { 
$ret = Array(); 
foreach((array) $data as $k => $v) { 
    if(is_int($k) && NULL != $prefix) { 
    $k = urlencode($prefix . $k); 
    } 
    if(!empty($key) || $key === 0) { 
    $k = $key . '[' . urlencode($k) . ']'; 
    } 
    if(is_array($v) || is_object($v)) { 
    array_push($ret, http_build_query($v, '', $sep, $k)); 
    } else { 
    array_push($ret, $k . '=' . urlencode($v)); 
    } 
} 
if(empty($sep)) { 
    $sep = '&'; 
} 
return implode($sep, $ret); 
} 
} 

$host = 'dbexternalsubscriber.secureserver.net'; 
$get = http_build_query($_GET); 
$post = http_build_query($_POST); 
$url = $get ? "?$get" : ''; 
$fp = fsockopen($host, 80, $errno, $errstr); 

if($fp) { 

$payload = "POST /embed/$url HTTP/1.1\r\n"; 
$payload .= "Host: $host\r\n"; 
$payload .= "Content-Length: " . strlen($post) . "\r\n"; 
$payload .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
$payload .= "Connection: Close\r\n\r\n"; 
$payload .= $post; 

fwrite($fp, $payload); 

$httpCode = NULL; 
$response = NULL; 
$timeout = time() + 15; 

do { 
while($line = fgets($fp)) { 
    $response .= $line; 
    if(!trim($line)) { 
    break; 
    } 
} 
} while($timeout > time() && NULL === $response); 

$headers = dbboon_parseHeaders($response); 
if(isset($headers['transfer-encoding']) && 'chunked' === $headers['transfer-encoding']) { 
do { 
    $cSize = $read = hexdec(trim(fgets($fp))); 
    while($read > 0) { 
    $buff = fread($fp, $read); 
    $read -= strlen($buff); 
    $response .= $buff; 
    } 
    $response .= fgets($fp); 
} while($cSize > 0); 
} else { 
preg_match('/Content-Length:\s([0-9]+)\r\n/msi', $response, $match); 
if(!isset($match[1])) { 
    echo '{"result":false,"error":{"code":3,"message":"Communication error, unable to contact proxy service.","version":"' . $version . '"}}'; 
    exit; 
} else { 
    while($match[1] > 0) { 
    $buff = fread($fp, $match[1]); 
    $match[1] -= strlen($buff); 
    $response .= $buff; 
    } 
} 
} 

fclose($fp); 

if(!$pos = strpos($response, "\r\n\r\n")) { 
echo '{"result":false,"error":{"code":2,"message":"Communication error, unable to contact proxy service.","version":"' . $version . '"}}'; 
exit; 
} 

echo substr($response, $pos + 4); 

} else { 
echo '{"result":false,"error":{"code":1,"message":"Communication error, unable to contact proxy service.","version":"' . $version . '"}}'; 
exit; 
} 
+0

這個問題應該被鎖定,大部分的答案是「我太」的意見,而不是答案。 – Jacco 2010-12-20 16:06:01

+0

嘗試在http://webmasters.stackexchange.com/上詢問此問題 – 2015-03-18 00:26:25

+3

我正在投票結束此問題,因爲它詢問了第三方服務政策 – TylerH 2016-08-11 15:13:00

回答

4

它看起來像代碼測試到dbexternalsubscriber.secureserver.net的連接,並返回結果在某種類型的JSON輸出。它可以用作某種類型的連接測試儀。我聽說過關於GoDaddy託管的一些不如人意的事情,但除了聲譽之外,如果可以的話,我會刪除它。另外,請檢查您的.htaccess文件,以瞭解可能反映此代碼的任何更改。

+1

謝謝您的建議。幸運的是,我能夠毫無問題地刪除該文件夾。 – 2010-05-01 22:21:38