No estás registrado (Registrarse)

Vanilla 1.1.10 es un producto de Lussumo. Para más información: Documentación, Soporte.

    •  
      CommentAuthorDeL
    • CommentTimeAug 15th 2009 editado
     # 1
    Hola, comienzo poniendo un primer tutorial sobre como proteger cualquier pagina PHP.


    Como proteger cualquier pagina PHP
    Actualizado!!! 16 de agosto

    Lo primero, crea un archivo que se llame seguridad.php

    <?php

    $Password = 'demene'; // Introduce aqui tu contraseña

    setcookie("setcookie", $Password, $time + 3600); // Esto es lo que hace recordar la contraseña, se puede cambiar el tiempo que recuerda la contraseña, ahora mismo esta para que la recuerde 1hore es igual a 3600 segundos.
    if(isset($_COOKIE['setcookie']))

    if (isset($_POST['submit_pwd'])){
    $pass = isset($_POST['passwd']) ? $_POST['passwd'] : '';

    if ($pass != $Password) {
    showForm("Contraseña incorrecta");
    exit();
    }
    } else {
    showForm();
    exit();
    }

    function showForm($error="SEGURIDAD"){
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title>Seguridad</title>
    <link href="style/style.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <div id="main">
    <div class="caption"><?php echo $error; ?></div>
    <div id="icono">&nbsp;</div>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="pwd">
    Contraseña:
    <table>
    <tr><td><input class="text" name="passwd" type="password"/></td></tr>
    <tr><td align="center"><br/>
    <input class="text" type="submit" name="submit_pwd" value="Acceder"/>
    <p><input type="checkbox" name="setcookie" value="setcookie" /> Recordarme</p>
    </td>
    </tr>
    </table>
    </form>
    <div id="source"></div>
    </div>
    </body>

    <?php
    }
    ?>



    Ahora para que tu pagina este protegida, solamente tienes que poner encima del codigo esto:

    <?php require_once('seguridad.php'); ?>


    Aqui teneis un ejemplo:

    Link
    Contraseña: demene


    Atencion este archivo no tiene incluido el recuerdame!!!
    Aqui para descargaros los archivos, que tiene el style.css, un icono y dos paginas PHP.

    http://www.megaupload.com/?d=489MLE73



    :cata:
    •  
      CommentAuthorMarc
    • CommentTimeAug 15th 2009
     # 2
    :cata2: Yo estoy empezando en el mundillo del PHP, sin duda, esto será de gran ayuda para ir empezando. Los tutoriales serán diarios? :eyebrows:Domaining...! Te ayudo con la gestión de tus dominios en INWX España - ¿Conoces mi newsletter de dominios?
    •  
      CommentAuthorAd-Senseí
    • CommentTimeAug 15th 2009
     # 3
    Protegerla de qué? Podias explicarlo un poco mejor porque
    no entiendo mucho que quieres decir.

    De un DDOS? o de qué? Hay muchos tipos de ataques y de protecciones.

    Salu2agua de coco | Wasap | washap telecharger whatsapp Remedios Naturales
    •  
      CommentAuthorMarc
    • CommentTimeAug 15th 2009 editado
     # 4
    Posted By: SpamCeroProtegerla de qué?
    Si pruebas el script, verás que éste proporciona la protección por contraseña para una determinada página.Domaining...! Te ayudo con la gestión de tus dominios en INWX España - ¿Conoces mi newsletter de dominios?
    •  
      CommentAuthorDeL
    • CommentTimeAug 15th 2009 editado
     # 5
    Basicamente es eso,lo que dice DrKaos.
    Hay bastantes utilidades, una diferente, aparte de proteger, es que por ejemplo al entrar en demene (Ejemplo) se requiere contestar bien ciertas preguntas antes de entrar diariamente imagina:

    "Cual ha sido el dominio mas caro vendido esta semana en sedo? - Si aciertas puedes entrar en la pagina, o puedes seguir haciendo preguntas.

    O simplemente para proteger con contraseña.
    :webmainer:
    •  
      CommentAuthordamefuego
    • CommentTimeAug 15th 2009
     # 6
    Uy muy bueno, voy a usarlo que tengo una página que me atacaron 4 veces en 15 días
    •  
      CommentAuthordamefuego
    • CommentTimeAug 15th 2009
     # 7
    Posted By: SpamCeroProtegerla de qué? Podias explicarlo un poco mejor porque
    no entiendo mucho que quieres decir.

    De un DDOS? o de qué? Hay muchos tipos de ataques y de protecciones.

    Salu2ganar euros1500 JUEGOS GRATIS

    Es para proteger los archivos que no te borren códigos, ni que te inyecten iframes, protege los php entiendo, a mi me vine bárbaro si funciona dos x tres me hacen mierda una pagina que tengo
    •  
      CommentAuthorMarc
    • CommentTimeAug 15th 2009
     # 8
    Lo estoy implementando en el wp-login y wp-admin de mis webs en WordPress, de esta manera, protejo un poco más los accesos al sistema de administración. :typeo:Domaining...! Te ayudo con la gestión de tus dominios en INWX España - ¿Conoces mi newsletter de dominios?
    •  
      CommentAuthorDeL
    • CommentTimeAug 15th 2009
     # 9
    Posted By: DrKaOsLo estoy implementando en el wp-login y wp-admin de mis webs en WordPress, de esta manera, protejo un poco más los accesos al sistema de administración.

    :cata2:
    •  
      CommentAuthorAd-Senseí
    • CommentTimeAug 15th 2009
     # 10
    Si al ver el código me imaginé que seria algo parecido.
    Gracias.agua de coco | Wasap | washap telecharger whatsapp Remedios Naturales
    • CommentAuthorMafiay2k
    • CommentTimeAug 15th 2009
     # 11
    Para desarrollos algo mas rapidos, os recomiendo Zend o Codeigniter.Dominios venta
    •  
      CommentAuthorMarc
    • CommentTimeAug 15th 2009 editado
     # 12
    Lo he implementado en el wp-login.php finalmente, ya que para acceder al wp-admin es obligatorio pasar por el login antes, pero no funciona, ya que se ve que funciona de la siguiente manera:

    Wp-login.php -> Se pide clave (seguridad.php) para acceder al wp-login.php -> Se redirige de nuevo al wp-login.php -> Introduces las credenciales de acceso -> Vuelve a cargar el wp-login para redirigir al wp-admin, pero el sistema vuelve a pedir la clave de seguridad.php, por lo que hay que volver a introducirla y vuelve a empezar la rueda :smash: No consigo loguearme.Domaining...! Te ayudo con la gestión de tus dominios en INWX España - ¿Conoces mi newsletter de dominios?
    •  
      CommentAuthorCorso
    • CommentTimeAug 15th 2009
     # 13
    DrKaOs, quizá lo tuyo más fácil por .htaccess, no?

    Sobre el script, estaría bueno que si se falla al introducir la contraseña enviara un mail al administrador. :eyebrows::: el roce hace el dominio ::
    •  
      CommentAuthorMarc
    • CommentTimeAug 15th 2009
     # 14
    Posted By: CorsoDrKaOs, quizá lo tuyo más fácil por .htaccess, no?
    Cierto :typeo:


    Posted By: Corsoestaría bueno que si se falla al introducir la contraseña enviara un mail al administrador.
    Además, que haya un número máximo de intentos cada hora y se envie el mail junto a la IP del que lo ha intentado. :pop2:Domaining...! Te ayudo con la gestión de tus dominios en INWX España - ¿Conoces mi newsletter de dominios?
    •  
      CommentAuthorSEATi
    • CommentTimeAug 15th 2009
     # 15
    No es mejor iniciar una sesion para evitar que se siga pidiendo el password una vez que ya se ha introducido?Creando el futuro de Internet... hoy!
    •  
      CommentAuthorDeL
    • CommentTimeAug 16th 2009 editado
     # 16
    Posted By: SEATiNo es mejor iniciar una sesion para evitar que se siga pidiendo el password una vez que ya se ha introducido?


    Aqui teneis el nuevo codigo con el recuerdame:

    <?php

    $Password = 'demene'; // Introduce aqui tu contraseña

    setcookie("setcookie", $Password, $time + 3600); // Esto es lo que hace recordar la contraseña, se puede cambiar
    el tiempo que recuerda la contraseña,
    ahora mismo esta para que la recuerde 1hore es igual a 3600 segundos.
    if(isset($_COOKIE['setcookie']))

    if (isset($_POST['submit_pwd'])){
    $pass = isset($_POST['passwd']) ? $_POST['passwd'] : '';

    if ($pass != $Password) {
    showForm("Contraseña incorrecta");
    exit();
    }
    } else {
    showForm();
    exit();
    }

    function showForm($error="SEGURIDAD"){
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title>Seguridad</title>
    <link href="style/style.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <div id="main">
    <div class="caption"><?php echo $error; ?></div>
    <div id="icono">&nbsp;</div>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="pwd">
    Contraseña:
    <table>
    <tr><td><input class="text" name="passwd" type="password"/></td></tr>
    <tr><td align="center"><br/>
    <input class="text" type="submit" name="submit_pwd" value="Acceder"/>
    <p><input type="checkbox" name="setcookie" value="setcookie" /> Recordarme</p>
    </td>
    </tr>
    </table>
    </form>
    <div id="source"></div>
    </div>
    </body>

    <?php
    }
    ?>




    Espero que os guste ahora mas :typeo:

    Aqui lo podeis ver en directo
    • CommentAuthormrpaco
    • CommentTimeAug 16th 2009
     # 17
    No te estas haciendo un lio tu mismo?

    $Password = 'demene'; // Introduce aqui tu contraseña

    setcookie("setcookie", $Password, $time + 3600); // Esto es lo que hace recordar la contraseña, se puede cambiar
    el tiempo que recuerda la contraseña,


    setcookie envia una cookie al usuario, estas enviando la clave, con lo que este no tiene mas que examinar las cookies para verla.Ex-cliente de OVH, ahora me comunico con ellos a traves de un abogado
    •  
      CommentAuthorSEATi
    • CommentTimeAug 16th 2009 editado
     # 18
    Te paso como solucionarlo...

    $Password = 'demene'; // Introduce aqui tu contraseña
    $Password_encriptada=md5($Password);
    setcookie("setcookie", $Password_encriptada, $time + 3600);
    if(isset($_COOKIE['setcookie']))

    if (isset($_POST['submit_pwd'])){
    $pass = isset($_POST['passwd']) ? $_POST['passwd'] : '';

    if ($pass != $Password) {
    showForm("Contraseña incorrecta");
    exit();
    }
    } else {
    showForm();
    exit();
    }


    Con eso se soluciona el que se pueda ver el password examinando la cookie... pero sigue habiendo un problema... que solo valida si existe la cookie, mas no si es correcta, por lo que el usuario podria crear arbitrariamente la cookie y ya con eso entraria...

    La solucion seria:

    $Password = 'demene'; // Introduce aqui tu contraseña
    $Password_encriptada=md5($Password);
    setcookie("setcookie['password']", $Password_encriptada, $time + 3600);
    if(isset($_COOKIE['setcookie']))

    if($_COOKIE["setcookie"]["password"]!=md5($Password)){
    showForm("Contrasena incorrecta");
    exit();
    }
    if (isset($_POST['submit_pwd'])){
    $pass = isset($_POST['passwd']) ? $_POST['passwd'] : '';

    if ($pass != $Password) {
    showForm("Contraseña incorrecta");
    exit();
    }
    } else {
    showForm();
    exit();
    }
    Creando el futuro de Internet... hoy!
    • CommentAuthormrpaco
    • CommentTimeAug 16th 2009
     # 19
    no me he expresado bien

    lo primero que estais haciendo es almacenar la clave (o su hash) en el ordenador cliente, sin saber siquiera si el usuario la sabe o no, y despues tomar decisiones si existe la cookie que acabais de meter.Ex-cliente de OVH, ahora me comunico con ellos a traves de un abogado
    •  
      CommentAuthorSEATi
    • CommentTimeAug 16th 2009
     # 20
    Toda la razon mrpaco... agrego la correccion:


    $Password = 'demene'; // Introduce aqui tu contraseña
    $Password_encriptada=md5($Password);
    if($_POST["passwd"]==$Password){
    setcookie("setcookie['password']", $Password_encriptada, $time + 3600);
    }
    Creando el futuro de Internet... hoy!
    •  
      CommentAuthorDeL
    • CommentTimeAug 16th 2009
     # 21
    Gracias SEATi y mrpaco
    • CommentAuthormrpaco
    • CommentTimeAug 16th 2009
     # 22
    De todos modos quiero recomendaros una pagina con la mayor recopilacion de clases php para todo tipo de tareas

    PHP Classes

    Para mi es el mejor lugar para conseguir todo tipo de ejemplos de codigo, y como no, entre ellos codigo para gestionar el acceso de usuarios.

    Ahorrareis mucho tiempo programando reutilizando ese codigo y por otra parte aprendereis mucho de php examinando el codigo, incluso aunque no lo utiliceisEx-cliente de OVH, ahora me comunico con ellos a traves de un abogado