Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/03/2012, 19:53
angel_toledo
 
Fecha de Ingreso: agosto-2004
Mensajes: 58
Antigüedad: 19 años, 8 meses
Puntos: 0
Posible error en mi codigo que genero hackeo

Me aparecio cierto archivo (x.txt) en mi servidor con el siguiente texto "hacked by Hmei7", quisiera que ayudaran a revisar mi codigo para saber si fue error mio en relacion al codigo php o si es error del servidor (y en ese caso hablarlo con mi proveedor).


Este es el index:
Código PHP:
<?php
error_reporting
(E_ALL);

include(
'conf.php');

if (!empty(
$_GET['id']))
    
$modulo $_GET['id'];
else
    
$modulo MODULO_DEFECTO;

if (empty(
$conf[$modulo]))
        
$modulo MODULO_DEFECTO;

if (empty(
$conf[$modulo]['layout']))
        
$conf[$modulo]['layout'] = LAYOUT_DEFECTO;
        

$path_layout LAYOUT_PATH.'/'.$conf[$modulo]['layout'];
$path_modulo MODULO_PATH.'/'.$conf[$modulo]['archivo'];

if (
file_exists($path_layout))
    include( 
$path_layout );
else
    if (
file_exists$path_modulo ))
        include( 
$path_modulo );
    else
        die(
'Error al cargar el módulo <b>'.$modulo.'</b>. No existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>');
?>
Este es el config:
Código PHP:
<?php

define
('MODULO_DEFECTO''home');
define('LAYOUT_DEFECTO''layout_default.php');
define('MODULO_PATH'realpath('./modulos/'));
define('LAYOUT_PATH'realpath('./layouts/'));

$conf['home'] = array(
        
'archivo' => 'home.php',
        
'layout' => LAYOUT_DEFECTO ); 
$conf['contacto'] = array(
        
'archivo' => 'contacto.php' );
$conf['restaurantes'] = array(
        
'archivo' => 'restaurantes.php',
        
'layout' => 'layout_restaurantes.php' );
?>
Esto va en el layout (lo demas del layout es solo HTML):
Código PHP:
<?
    
if (file_exists$path_modulo )) include( $path_modulo );
    else die(
'Error al cargar el módulo <b>'.$modulo.'</b>. No existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>');
?>
Y en los modulos algo como esto (HTML):
Código PHP:
<div>
            <
img src="imagenes/bienvenida.jpg" width="687" height="403" alt="" />
        </
div
Y mi formulario de contacto que tambien es php es el siguiente (lo baje de un sitio por eso tiene comentarios):
Código PHP:
<?php
if (isset($_POST['submit'])) {

    
// Checamos si el Referer viene de nuestro sitio 
    
$valid_hosts = array('www.algo.mx''algo.mx');
    
$temp_referer explode('/'$_SERVER['HTTP_REFERER']);
    if (!
in_array($temp_referer[2], $valid_hosts)) {
        exit(
'Formulario para uso exclusivo de Algo </p></fieldset></div></body></html>');
    }
    
    
    
/* Setear todas las variables */
    
foreach ($_POST as $key=>$value) {    
        
// Checamos algunas keys para prevenir spam/injections
        
if (eregi('MIME-Version:'$value) || eregi('Content-Type'$value) || eregi('boundary='$value) || eregi('<script'$value) || eregi("CC:",$value)) {
            exit(
'Error: Prohibido el SPAM </p></fieldset></div></body></html>');
        }
        
        $
$key $value;
    }
    
    
    
/* Validacion*/
    
    // Chequear campos obligatorios
    
$required_fields = array('nombre''email''comentario');
    foreach (
$required_fields as $required_field) {    
        if (!isset($
$required_field) || $$required_field == '') {    
            exit(
'Todos los campos son obligatorios </p></fieldset></div></body></html>');
        }
    }
    
    
// Validar email
    
if (!preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/"$email)) {
          exit(
'El formato de e-mail ingresado no es valido </p></fieldset></div></body></html>');
    }
    
    
/* Fin Validacion */
    
    
    // Mensaje
    
$message =<<<EOD
FORMULARIO DE CONTACTO
 
Nombre: 
{$nombre}
Email: 
{$email}
Comentario: 
{$comentario}
EOD;
    
    
$to '[email protected]';
    
$subject 'Contacto Algo';
    
$headers 'From: [email protected]."\r\n";

    
mail($to,$subject,$message,$headers);

    exit(
'Enviado Correctamente </p></fieldset></div></body></html>');

} else {
    exit(
'No se puede acceder a este archivo directamente </p></fieldset></div></body></html>');
}
?>
Espero me puedan ayudar, ya que si me extraño la aparicion de ese archivo.