
22/11/2006, 06:51
|
| | Fecha de Ingreso: septiembre-2004
Mensajes: 5
Antigüedad: 20 años, 5 meses Puntos: 0 | |
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. |