Mam małe pytanie - ponieważ chciałem postawić troche stron pod Gotlinka na własne potrzeby - do czego używacie PROXY, które jest w skrypcie instalacyjnym?
case 'proxy':
if (md5($_GET['url'] . 'xxxx') != $_GET['token'])
die('error');
$url = $_GET['url'];
$data = '';
if (function_exists('curl_init')) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) wt');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
} elseif (ini_get('allow_url_fopen')) {
$data = @file_get_contents($url);
} elseif (function_exists('fsockopen')) {
$url = preg_replace('/^https:\/\//', '', $url);
$url = explode('/', $url, 2);
$fp = @fsockopen($url[0], 80, $errno, $errstr, 30);
$data = '';
if ($fp) {
$out = "GET /$url[1] HTTP/1.0\r\n" . "Host: $url[0] \r\n" . "Connection: Close\r\n\r\n";
@fputs($fp, $out);
while (!@feof($fp)) {
$data .= fgets($fp, 1024);
}
@fclose($fp);
list($headers, $data) = preg_split("#(\r?\n){2}#", $data, 2);
}
}
echo $data;
exit();
break;
}
Do tej pory byłem użytkownikiem Waszego serwisu ale nie stawiałem tam zaplecza.
Przy skryptach instalacyjnych nigdzie nie piszecie że będziecie używać sobie serwera hostującego jako proxy?
Nie wiem może się czepiam i ten temat był poruszany, ale dla mnie to wygląda cholernie niebezpiecznie szczególnie biorąc pod uwagę, że nigdzie jasno nie informujecie o tym do czego może zostać użyty skrypt a nie każdy instalujący sprawdzi jego zawartość...
Inaczej mówiąc - powyższy kod to zwykły backdoor pozwalający na otworzenie z serwera użytkownika dowolnej strony internetowej (chyba ryzyko każdy widzi...).