Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/11/2006, 06:51
[Cristiam]
 
Fecha de Ingreso: septiembre-2004
Mensajes: 5
Antigüedad: 19 años, 7 meses
Puntos: 0
Sonrisa Analizando codigo PHP

Resulta que una empresa "X" quiere hacer publicidad en uno de mis sitios y me pide como requisito colocar un código durante 10/15 días para que SU sistema verifique si todo esta correcto (no sé que).

Me han enviado el código, debo colocarlo durante 10/15 días y luego me enviarán el contrato. Estuve revisando el código PHP y me gustaría que me diera su opinión para saber si el código que me han enviado no implica ningun riesgo para la seguridad de mi sitio.

Archivo "ad_networkd_414.php":
Código:
<?php
	// Last update:  July 10, 2006 3:10 pm (PST)

	function file_get_contents_an($url) {
		if (substr ($url, 0, 7) == 'http: //') {
			$url = parse_url ($url);
			if ($handle = @fsockopen ($url['host'], 80)) {
				fwrite ($handle, "GET $url[path]?$url[query] HTTP/1.0\r\nHost: $url[host]\r\nConnection: Close\r\n\r\n");
				while (!feof($handle)) {
					$string .= @fread($handle, 40960);
				}
				$string = explode ("
", $string);
				$string = array_pop ($string);
			}
		} else {
			$handle = fopen($url, 'r');
			$string = fread($handle, 4096000);
			
		}
		fclose($handle);
		return $string;
	}
	
	if (!function_exists('make_seed')) {
		function make_seed() {
			list($usec, $sec) = explode(' ', microtime());
			return (float) $sec + ((float) $usec * 100000);
		}
		mt_srand (make_seed());
	}

	if (!isset($_SERVER)) $_SERVER = $HTTP_SERVER_VARS;

	$ad_file = 'ad_network_ads_414.txt';
	for ($i = 0; $i <= 11; $i++) {
		$path = substr ('../../../../../../../../../../', 0, $i * 3);
		if (file_exists ($path . $ad_file)) {
			$ad_file = $path . $ad_file;
			break;
		}
	}

	if (is_writable ($ad_file)) {
		$ad_network = array();
		$ads = file_get_contents_an ($ad_file);
		$ads = explode ('<ad_break>', $ads);
		$ads_temp = explode ('|', $ads[0]);

		$file = fopen($ad_file, 'r+');
		if (flock ($file, LOCK_EX|LOCK_NB, $would_block) && !$would_block) {
			if ((count ($ads) < $ads_temp[4] + 1 && $ads_temp[0] + $ads_temp[6] < time()) || $ads_temp[0] + $ads_temp[5] < time()) {
				$new_ad = file_get_contents_an ('http: //ads.digitalpoint.com/network.php?c=' . $_SERVER['SERVER_NAME'] . '&type=link');
				if ($new_ad) {
					$ads_param = explode ('<ad_param>' , $new_ad);
					$new_ad = $ads_param[1];
					unset ($ads_param[1]);
					$ads_temp = explode ('|', $ads_temp[0] . '|' . $ads_temp[1] . '|' . $ads_temp[2] . '|' . $ads_param[0]);
				} else {
					$ads_param = array_slice ($ads_temp, 3, 6);
				}
				$ads_temp[1] = (integer)$ads_temp[1] + 1;
				if ($ads_temp[1] > $ads_temp[4]) $ads_temp[1] = 1;
				$ads[0] = time() . '|' . $ads_temp[1] . '|' . gethostbyname('validate.digitalpoint.com') . '|' . implode ('|', $ads_param);
				if ($new_ad) {
					$ads[$ads_temp[1]] = $new_ad;
					if (count ($ads) > $ads_temp[4] + 1) $ads = array_merge ((array)$ads[0], (array)array_slice ($ads, -$ads_temp[4]));
				}
				fwrite ($file, implode ('<ad_break>', $ads));
				ftruncate ($file, ftell($file));
			}
			flock ($file, LOCK_UN);
			fclose ($file);
		}
		$ads_x = 0;
		while (count ($ad_network) < 5) {
			if (count($ad_network) % 2 == 0) {
				$ads_next = (hexdec(substr(md5($_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'] . $_SERVER['PATH_INFO'] . $_SERVER['QUERY_STRING']), 0, 6)) % (count($ads) - 1 - $ads_x)) + 1;
				$ads_x++;
			} else {
				$ads_next = mt_rand(1,count($ads) - 1);
			}
			$ad_network[] = $ads[$ads_next];
		}
		foreach ($ad_network as $key => $ad) {
			$split = explode ('<id>', $ad);
			$ad_ids[] = $split[1];
			$ad = $split[0];
			$ads_output = $ads_temp[2] == $_SERVER['REMOTE_ADDR'] || $_SERVER['SERVER_ADDR'] == $_SERVER['REMOTE_ADDR'];
			if ($ads_output) {
				$ad_network[$key] = str_replace ('" />', '" class="' . $ads_temp[3] . '" />', $ad);
			} else {
				$ad_network[$key] = str_replace ('" />', '">', $ad);
			}
		}
		$ad_network = implode ('|', $ad_network);
		if ($ads_temp[7] && ($ads_output || preg_match('#(' . str_replace ('-', '|', $ads_temp[8]) . ')#si', $_SERVER['HTTP_USER_AGENT'])) && !$_SERVER['HTTPS']) $ad_network .= ' <img src="http ://ads.digitalpoint.com/t-' . implode ('-', $ad_ids) . '.gif" width="1" height="1">';
	} else {
		$ad_network = 'You must set the ' . $ad_file . ' file to be writable (check file name as well).';
	}
		if (substr (@$_SERVER['DOCUMENT_NAME'], -6) == '.shtml') {
		ini_set ('zlib.output_compression', 0);
		echo $ad_network;
	}
?>
Además, me han exigido que coloque un archivo ad_network_ads_414.txt dándole permisos de escritura 666 a dicho archivo.

Y para insertar el código en mis páginas el siguiente code:

Código:
<?php
    ini_set ("include_path", ini_get ("include_path") . ':../:../../:../../../:../../../../'); 
    include ('ad_network_414.php');
    echo $ad_network;
?>
¿Cómo lo ven ustedes?.
Gracias de antemano por sus opiniones.