", "'", "%", "\"", "\[", "\]", "\|", "\)"); $inyecciones=""; $cadena_hackeada=""; foreach($array_inyecciones as $inyeccion){ $inyecciones.=$inyeccion."|"; } $inyecciones=substr($inyecciones,0,strlen($inyecciones)-1); $expreg = "/(?:".$inyecciones.")/i"; if (preg_match_all($expreg,urldecode($sCadena),$encontrado)) { $hacking=true; // Email al webmaster + Banear al usuario $cadena_hackeada=$sCadena; } else if(preg_match_all($expreg,urldecode($sCadena2),$encontrado)) { $hacking=true; // Email al webmaster + Banear al usuario $cadena_hackeada=$sCadena; } else if(preg_match_all($expreg,urldecode($sCadena3),$encontrado)) { $hacking=true; // Email al webmaster + Banear al usuario $cadena_hackeada=$sCadena3; } else if(preg_match_all($expreg,urldecode($sCadena4),$encontrado)) { $hacking=true; // Email al webmaster + Banear al usuario $cadena_hackeada=$sCadena4; } if($hacking) { $servidor=$_SERVER["SERVER_NAME"]; $ip_atacante=$_SERVER["REMOTE_ADDR"]; $host_atacante=$_SERVER["REMOTE_HOST"]; $puerto_atacante=$_SERVER["REMOTE_PORT"]; $datosAtaque="\n".date("d:m:Y H:i:s")."\n". "Servidor: ".$servidor."\n". "Ip Atacante: ".$ip_atacante."\n". "Servidor Atacante: ".$host_atacante."\n". "Puerto Atacante: ".$puerto_atacante."\n". "Agente Atacante: ".$agente_atacante."\n". "Cadena: ".$cadena_hackeada; $resource=fopen("registro_ataques","a+"); fwrite($resource,$datosAtaque); fclose($resource); ///CORREO EL PRIMER ATAQUE if(!isset($_SESSION["IP_ATACANTE"])){ $_SESSION["IP_ATACANTE"]=$ip_atacante; $headers = "MIME-Version: 1.0\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\n"; $headers .= "From: Contacto desde ".$servidor." <".EMAIL_CONTACTO.">\n"; //mail("ataques@iteasoluciones.es","Intento de Hackeo ".$servidor,str_replace("\n","
",$datosAtaque),$headers); }//DETECTO EL PRIMERO DE LOS ATAQUES exit; } ?> abrir($conexion,$sql); $A_SeccionesAbiertas=array(); while (!$SeccionesAbiertas->final){ $A_SeccionesAbiertas[]=$SeccionesAbiertas->campo(1); $SeccionesAbiertas->siguiente(); } //COMPRUEBO SI ESTA VALIDADO if($_SESSION["SES_USER_ID"]){ //Obtengo los perfiles que tiene este usuario $perfiles=new RecordsetClass; $sql_perfiles="SELECT id_perfil FROM perfiles_socios WHERE id_socio='".$_SESSION["SES_USER_ID"]."'"; $perfiles->abrir($conexion,$sql_perfiles); if($perfiles->numRegistros()>0){ $cadena=""; while (!$perfiles->final){ $cadena.=$perfiles->campo(1).","; $perfiles->siguiente(); } $cadena = substr($cadena, 0, -1); $A_SeccionesUsuario=array(); $sql="SELECT s.id FROM secciones s, permisos p WHERE s.id=p.id_seccion AND s.asociado='1' AND s.visible='1' AND p.id_tipo IN (".$cadena.")"; $SeccionesAbiertas->abrir($conexion,$sql); while (!$SeccionesAbiertas->final){ $A_SeccionesUsuario[]=$SeccionesAbiertas->campo(1); $SeccionesAbiertas->siguiente(); } $A_SeccionesAbiertas=array_merge($A_SeccionesAbiertas,$A_SeccionesUsuario); } }//SI HAY SESION /************CONTROL ACCESO CONTENIDOS***********/ //CONTROL PARA QUE NO SE PUEDA ENTRAR EN UN CONTENIDO QUE PERTENECE ÚNICAMENTE A SECCIONES PRIVADAS SI NO SE TIENEN PERMISOS if(isset($objeto)){ $contenidoPermisoVisualizar=false; //OBTENGO LAS SECCIONES OCULTAS EN LAS QUE ESTÉ EL CONTENIDO $O_ConsultaObjeto=new C_Bbdd; $O_ConsultaObjeto->M_Conectar(); //ESTAS SON LAS SECCIONES PRIVADAS EN LAS QUE SALE EL OBJETO $sql="SELECT DISTINCT(s.id) FROM objetos_elementos oe, listados_elementos le, secciones s WHERE s.id=le.id_elemento AND le.id_listado=oe.id_elemento AND s.asociado=1 AND s.visible='1' AND oe.id_objeto=".$objeto; $O_ConsultaObjeto->M_Consulta($sql); if(!$O_ConsultaObjeto->V_NumRegistros){ $contenidoPermisoVisualizar=true; }//si no está en ninguna privada SE PUEDE VER else{ //print_r($O_ConsultaObjeto->A_ResultadoConsulta); //guardo las secciones privadas en las que está $A_privadasObjeto=array(); foreach($O_ConsultaObjeto->A_ResultadoConsulta as $SeccionPrivada){ $A_privadasObjeto[]=$SeccionPrivada["ID"]; }//cargo el array de las privadas //COMPRUEBO SI ESTÁ EN ALGUNA PUBLICA $sql="SELECT DISTINCT(s.id) FROM objetos_elementos oe, listados_elementos le, secciones s WHERE s.id=le.id_elemento AND le.id_listado=oe.id_elemento AND s.asociado=0 AND s.visible='1' AND oe.id_objeto=".$objeto; $O_ConsultaObjeto->M_Consulta($sql); if(!$O_ConsultaObjeto->V_NumRegistros){ if($_SESSION["SES_USER_ID"]){ //print_r($A_privadasObjeto); //print_r($A_SeccionesUsuario); $A_inteseccionObjeto=array_intersect($A_privadasObjeto,$A_SeccionesUsuario); if(count($A_inteseccionObjeto)){ $contenidoPermisoVisualizar=true; }//tiene acceso a alguna de las privadas donde está POR ESO PUEDO VERLO else{ $contenidoPermisoVisualizar=false; }//DEFINITIVAMENTE NO SE PUEDE VER }//si está validado compruebo si sus secciones privadas coinciden alguna con las secciones privadas donde está el objeto else{ $contenidoPermisoVisualizar=false; }//si no está validado ENTONCES NO PUEDE ENTRAR EN LAS PRIVADAS Y POR LO TANTO NO PUEDE VERLO }//si no está en ninguna pública HAY QUE COMPROBAR SI TIENE ACCESO A LAS PRIVADAS OBTENIDAS ANTES else{ $contenidoPermisoVisualizar=true; }//si está en una pública SE PUEDE VER }//si está en una privada hay que comprobar si tiene acceso }//si se está intentado entrar en un objeto //OBTENER LAS MARCAS CON CONTENIDOS VINCULADOS $MarcasAbiertas=new RecordsetClass; $sql="SELECT distinct(o.id_marca) FROM objetos o WHERE o.visible='1' AND o.id_marca!='0'"; $MarcasAbiertas->abrir($conexion,$sql); $A_MarcasAbiertas=array(); if($MarcasAbiertas->numRegistros()){ while (!$MarcasAbiertas->final){ $A_MarcasAbiertas[]=$MarcasAbiertas->campo(1); $MarcasAbiertas->siguiente(); } } //OBTENER LAS CATEGORIAS CON CONTENIDOS VINCULADOS $CategoriasAbiertas=new RecordsetClass; //PARA EL PORTAL GENERAL $sql="SELECT distinct(c.id) FROM objetos_categorias oc, objetos o, categorias c WHERE c.id=oc.id_categoria AND o.id=oc.id_objeto"; $CategoriasAbiertas->abrir($conexion,$sql); $A_CategoriasAbiertas=array(); if($CategoriasAbiertas->numRegistros()){ while (!$CategoriasAbiertas->final){ $A_CategoriasAbiertas[]=$CategoriasAbiertas->campo(1); $CategoriasAbiertas->siguiente(); } } /************ FIN CONTROL ACCESO CONTENIDOS***********/ /*echo count($A_SeccionesAbiertas); echo "
".count($A_SeccionesUsuario); echo "
".count($A_SeccionesAbiertas);*/ //print_r($A_SeccionesAbiertas); ?>