Mensajes Privados Tu Cuenta Inicio
Cerrar Patrocinadores

Desarrollo Web Profesional


Cerrar Nuestros Proyectos

Dedalus

-| ¿Que es Dédalus?
-| Descargar
-| Añadir Bug
-| Screenshots
-| Demo On-Line
-| Documentación
-| Foros
-| Directorio Web

BrisaTop

-| ¿Que es BrisaTop?
-| Descargar
-| Screenshots
-| Demo On-Line
-| Documentación
-| Foros
-| Directorio Web

NukeET

-| ¿Que es NukeET?
-| Descargar
-| Screenshots
-| Demo On-Line
-| Documentación
-| Foros
-| Directorio Web

T-Blog

-| ¿Que es T-Blog?
-| Descargar
-| Screenshots
-| Demo On-Line
-| Documentación
-| Foros
-| Directorio Web


Cerrar Protección SSL
Thawte siteseal


07-09-2010 07:40
Bienvenid@ identifícarse o registrarse
Cerrar Avisos Importantes

Problemas de autentificación

Se han realizado cambios en la gestión de las cookies, si tienes problemas a la hora de identificarte, prueba a eliminar las cookies (si no sabes cómo eliminar sólo las relacionadas con la TruZone, o tu navegador no deja, puedes eliminarlas todas). Si tras intentar la conexión sin ninguna cookie activa persiste el problema, contacta con la administración desde la zona de contacto.

Gracias




MÁS SEGURIDAD PARA TU NUKEET
    Índice » NUKE ET » Más Seguridad para tu NukeET

INFORMACIÓN
  •   Zona Más Seguridad para tu NukeET  
  •   Lecturas 4121  
  •   Creado el 10 de julio de 2008 a las 13:31:05  
  •   Última modificación 20 de febrero de 2009 a las 22:06:09  

Preguntas
Respuestas

• Cambiar la llave
Lo piden y se hace, si por algún casual quieres cambiar la llave de tu nukeET, lo que tienes que hacer es muy sencillo, vas a codificar md5 allí pones la llave que desees y le das a codificar y te dará el resultado codificado, si se pone prueba el resultado que te da es c893bad68927b457dbed39460e6afd62

Ahora editas el config.php y buscas el $llave = "loqueesa"; y cambias el loquesea por la llave codificada, o sea en nuestro ejemplo (usando la palabra prueba como llave) quedaría

Código
 $llave "c893bad68927b457dbed39460e6afd62"


lo guardas, lo subes y ya está.
Volver al inicio

• Añadir la llave de seguridad
Vamos a poner un sencillo ejemplo de cómo introducir la llave del NukeET, con dos finalidades diferentes.

Para empezar a continuación un sencillo código de un hipotético archivo de admin/modules:

Código

<?php
if(!defined('NUKE_ET'))
{
    
Header("Location: ../../error.php?op=e403");
    die();
}

$aid substr("$aid"0,25);
$paso=0;
$result $db->sql_query("SELECT radminsuper FROM ".$prefix."_authors WHERE aid='$aid'");
$row $db->sql_fetchrow($result);
$paso intval($row['radminsuper']);

if (
$paso == 1)
{
    function 
ejemplo_ini()
    {
    include(
"header.php");
    
GraphicAdmin();
    
OpenTable();
    echo 
'
    <div style="text-align:center">
        <form action="admin.php?op=ejemplo_ir">
            <input type="text" name="nombre"><br><br>
            <input type="hidden" value="enviar"><br>
        </form>
    </div>'
;
    
CloseTable();
    include(
"footer.php");
}

function 
ejemplo_ir($nombre)
{
    include(
"header.php");

    
GraphicAdmin();
    
OpenTable();
    echo 
'<div style="text-align:center">El nombre introducido es '.$nombre.'</div>';
    
CloseTable();
    include(
"footer.php");
}

switch(
$op)
{

    case 
"ejemplo_ini":
    
ini();
    break;

    case 
"ejemplo_ir":
    
ir($nombre);
    break;
}

}
else
{

    
Header("Location: error.php?op=e404");
    
    die();

}

?>


Vamos a introducir la llave para que, de ponerse de forma correcta, se salte la restricción de tags. El código quedaría así:

Código

<?php

if(!defined('NUKE_ET'))
{
    
Header("Location: ../../error.php?op=e403");
    die();
}

$aid substr("$aid"0,25);
$paso=0;
$result $db->sql_query("SELECT radminsuper FROM ".$prefix."_authors WHERE aid='$aid'");
$row $db->sql_fetchrow($result);
$paso intval($row['radminsuper']);

if (
$paso == 1)
{

function 
ejemplo_ini()
{
    include(
"header.php");

    
GraphicAdmin();
    
OpenTable();

    echo 
'
    <div style="text-align:center">
        <form action="admin.php?op=ejemplo_ir">
            <input type="text" name="nombre"><br><br>
            <b>Llave:</b> <input type="password" name="llavep"><br><br>
            <input type="hidden" value="enviar"><br>
        </form>
    </div>'
;
    
    
CloseTable();

    include(
"footer.php");
}

function 
ejemplo_ir($nombre)
{
    include(
"header.php");

    
GraphicAdmin();
    
OpenTable();
    echo 
'<div style="text-align:center">El nombre introducido es '.$nombre.'</div>';
    
CloseTable();
    include(
"footer.php");
}

switch(
$op)
{

    case 
"ejemplo_ini":
    
ini();
    break;

    case 
"ejemplo_ir":
    
ir($nombre);
    break;
}

}else{

Header("Location: error.php?op=e404");
die();

}

?>


Como puedes ver, simplemente se añade un input de type password con nombre llavep. Es muy importante que se llame llavep, de ser otro nombre no funcionará.

Ahora la segunda parte, ya hemos conseguido que se salte la restricción de los tags, pero puede interesarnos que el suceso de la function ejemplo_ir se ejecute sólo si la llave que se puso es correcta, para ello dejamos el código así:

Código
<?php

if(!defined('NUKE_ET'))
{
    
Header("Location: ../../error.php?op=e403");
    die();
}

$aid substr("$aid"0,25);
$paso=0;
$result $db->sql_query("SELECT radminsuper FROM ".$prefix."_authors WHERE aid='$aid'");
$row $db->sql_fetchrow($result);
$paso intval($row['radminsuper']);

if (
$paso == 1) {

function 
ejemplo_ini(){

    include(
"header.php");
    
GraphicAdmin();
    
OpenTable();
    
    echo 
'
    <div style="text-align:center">
        <form action="admin.php?op=ejemplo_ir">
            <input type="text" name="nombre"><br><br>
            <b>Llave:</b> <input type="password" name="llavep"><br><br>
            <input type="hidden" value="enviar"><br>
        </form>
    </div>'
;
    
CloseTable();
    
    include(
"footer.php");
}

function 
ejemplo_ir($nombre)
{
    global 
$llave,$llavep;

    if(
$llave!=$llavep)
    {
        
Header("Location: error.php?op=e401");
        die();
    }

    include(
"header.php");
    
    
GraphicAdmin();
    
OpenTable();
    echo 
'<div style="text-align:center">El nombre introducido es '.$nombre.'</div>';
    
CloseTable();
    include(
"footer.php");
}

switch(
$op)
{

    case 
"ejemplo_ini":
    
ini();

    break;

    case 
"ejemplo_ir":
    
ir($nombre);

    break;

}



}else{

    
Header("Location: error.php?op=e404");
    die();

}

?>



Puedes ver cómo no es más que una ampliación, la function ejemplo_in queda intacta y sólo modificamos la iejmplo_ir en la que metemos un global con los valores $llave y $llavep, sólo tenemos que hacer un if para compararlas, de ser diferentes hacemos que muestre el error 401 del NukeET.

Es fácil ¿verdad?
Volver al inicio

• Como agregar el código de seguridad
Agregar el código de seguridad en cualquier zona de tu nuke es muy sencillo.

Primero lo necesario. Básicamente en una function se colocará el código de seguridad y en la function destino se comprobará que se ha introducido correctamente.

Lo habitual es que en una function exista un formulario y nosotros queremos que ese formulario tenga el código de seguridad, a esa function la llamaremos function inicio. La function que se cargará cuando enviemos el formulario es la function destino.

Cada function tiene una línea que empieza por la palabra global seguido de un listado de variables ya definidas en el nuke y que se van a utilizar en la function. A esta línea debemos agregar la variable $gfx_chk en la function inicio y las variables $gfx_chk y $sitekey en la function destino.

Procedamos a colocar el código de seguridad en sí. El código genérico a agregar en la function inicio es:

Código
 
$random_num 
mt_rand(01000000);

if (
extension_loaded('gd') AND ($gfx_chk == OR $gfx_chk == OR $gfx_chk == OR $gfx_chk == 7)) 

{
       echo 
'
       <br><br><b>'
._SECURITYCODE.':</b>
    <img src="error.php?op=gfx&random_num='
.$random_num.'" border="1" alt="'._SECURITYCODE.'" title="'._SECURITYCODE.'">
       <br><br>
       <b>'
._TYPESECCODE.':</b> <input type="text" NAME="gfx_check" SIZE="7" MAXLENGTH="6">
       <input type="hidden" name="random_num" value="'
.$random_num.'">';


Debe ponerse dónde deseamos que se muestre el código.

En la function destino debemos colocar el código que comprueba que el código se ha introducido de forma correcta, para ello es bueno que el código se coloque justo despues de la línea del global y el código sería:

Código
 
$datekey 
date("F j");
$rcode hexdec(md5($_SERVER[HTTP_USER_AGENT] . $sitekey $_POST[random_num] . $datekey));
$code substr($rcode26);
if (
extension_loaded("gd") AND $code != $_POST['gfx_check'] AND ($gfx_chk == OR $gfx_chk == OR $gfx_chk == OR $gfx_chk == 7)) {
    include(
'header.php');
    
OpenTable();
    echo 
'<center><b>'._SECCODEINCOR.'</b><br><br>'._GOBACK.'</center>';
    
CloseTable();
    include(
'footer.php');
    die();
}
 


Para terminar, debemos definir en el lang del módulo _SECCONDEINCOR introduciendo la siguiente línea:

Código
 define("_SECCODEINCOR","Código de Seguridad es incorrecto, Por favor regresa atrás y escribelo exactamente como fue generado..."); 


Con esto ya tenemos el código de seguridad integrado. A continuación pongo un sencillo código de un módulo con el código de seguridad:

Código

<?php

/************************************************************************/
/* NUKE ET: Modificacion del PHP-Nuke                                   */
/* ==================================                                   */
/*                                                                      */
/* Modulo creado con el conversor HTML a NukeET                          */
/*                                                                      */
/* Copyright (c) 2004 por Truzone                                        */
/* http://www.truzone.org                                               */
/************************************************************************/

if(!defined('NUKE_ET')) {
    
Header("Location: ../../error.php?op=e403");
    die();
}

require_once(
"mainfile.php");
$module_name basename(dirname(__FILE__));

function 
principal() 
{
    global 
$module_name,$gfx_chk;

    include(
'header.php');
    
OpenTable();
    echo 
'
    <form method="post" action="./modules.php?name='
.$module_name.'&op=destino">';

    
$random_num mt_rand(01000000);
    if (
extension_loaded('gd') AND ($gfx_chk == OR $gfx_chk == OR $gfx_chk == OR $gfx_chk == 7))
    {
           echo 
'
           <br><br><b>'
._SECURITYCODE.':</b>
        <img src="error.php?op=gfx&random_num='
.$random_num.'" border="1" alt="'._SECURITYCODE.'" title="'._SECURITYCODE.'">
           <br><br>
           <b>'
._TYPESECCODE.':</b> <input type="text" NAME="gfx_check" SIZE="7" MAXLENGTH="6">
           <input type="hidden" name="random_num" value="'
.$random_num.'">';
    }

    echo 
'
        <input type="submit" value="Enviar">
    </form>'
;
    
CloseTable();
    include(
'footer.php');
}

function 
destino()
{
    global 
$module_name,$gfx_chk,$sitekey;

    
$datekey date("F j");
    
$rcode hexdec(md5($_SERVER[HTTP_USER_AGENT] . $sitekey $_POST[random_num] . $datekey));
    
$code substr($rcode26);
    if (
extension_loaded("gd") AND $code != $_POST['gfx_check'] AND ($gfx_chk == OR $gfx_chk == OR $gfx_chk == OR $gfx_chk == 7))
    {
        include(
'header.php');
        
OpenTable();
        echo 
'<center><b>'._SECCODEINCOR.'</b><br><br>'._GOBACK.'</center>';
        
CloseTable();
        include(
'footer.php');
        die();
    }

    include(
'header.php');
    
OpenTable();
    echo 
'
    <center>
        El código de seguridad es correcto
    </center>'
;
    
CloseTable();
    include(
'footer.php');
}

switch(
$op)
{

    default:
    
principal();
    break;

    case 
"destino":
    
destino();
    break;

}

?>


Las dudas sobre la programación para NukeET se pueden consultar en el manual al respecto en la Central de Desarrollo
Volver al inicio

• Como activar el mod_rewrite en local
Bueno lo primero seria buscar el archivo httpd.conf, que en el appserv esta en la siguiente ruta

Código
 C:AppServApache2.2conf 


Una vez encontrado lo habrimos con nuestro editor de php, yo recomiendo el pspad, y buscamos la siguiente linea.

Código
 #LoadModule rewrite_module modules/mod_rewrite.so 


Le quitamos la # y guardamos.

Para finalizar reinciamos apache, y ya esta.

Manual realizado por MakiSpain en este post.
Volver al inicio




Powered by Dedalus CMS License TruOpenSource/LGP TruZone Community
Tiempo de carga 0,034 segundos (PHP: 89,15% | MySQL: 10,85%) | 20 llamadas a la Base de Datos