elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 20:50  


Tema destacado: [AIO elhacker.NET] Compilación herramientas análisis y desinfección malware

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Proteger paginas en PHP con sesiones!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Proteger paginas en PHP con sesiones!  (Leído 5,430 veces)
.:ZeRo:.
Visitante


Email
Proteger paginas en PHP con sesiones!
« en: 22 Mayo 2004, 16:34 »

Citar
Bueno este post lo habia puesto como respuesta... pero creo que es muy bueno... asi que lo pongo como tema...

Espero ganarme un sticky! =)



Yo tengo otra forma de proteger en php... aqui lo he hecho con sesiones en php para hacerlo mas seguro:

1.- Todo el 'proyecto' consta de 4 archivos, index.php, check.php, logout.php y security.php.  Empezare a explicar el inde.php

Index.php

Código:
<form action="check.php" method="POST">
  <table align="center" width="225" cellspacing="2" cellpadding="2" border="0">
    <tr>
      <td colspan="2" align="center"
<?php if ($_GET["error"]=="data"){?>
bgcolor=red><span style="color:#fffff"><b>Sux! Try Again! </b></span>
          <?}else{?>
      bgcolor=#666666 bordercolor="red"><span class="Estilo3">Enter you data </span>
      <?}?></td>
    </tr>
    <tr>
      <td align="right" >Usr:</td>
      <td><input name="user" type="Text" maxlength="50"></td>
    </tr>
    <tr>
      <td align="right">Pwd:</td>
      <td><input name="pass" type="password"  maxlength="50"></td>
    </tr>
    <tr>
      <td colspan="2" align="center"><input name="Submit" type="Submit" value="     Go!     "></td>
    </tr>
  </table>

Bueno como vemos en el code de arriba, lo unico que hice es crear dos campos (pass y user) y el boton para enviar el formulario a el check.php, tambien si ven, he llamado a unas string... que si los datos ingresados no son los correctos, nos regresa al formulario con una advertencia.

check.php

Código:
<?php
/*
Archivo: check.php
Autor: ZeRo- (ZeRo-@37.com)
Descripción: Compara los datos insertados en los campos, para asi crear una sesion configurada por cookies
*/
//checamos si los datos son correctos
if ($_POST["usuario"]=="padrino" && $_POST["pass"]=="password"){
//Si son validos... creo una sesion
//creando sesion y guardando datos
session_start();
$_SESSION["autentificado"]= "SI";
header ("Location: index2.php");
}else {
//si no existe le mando otra vez a la portada
header("Location: index.php?error=data");
}
?>

Como ven, en ($_POST["user"]=="padrino" && $_POST["pass"]=="password") es donde se deben poner el usuario y el password deseados.... y si los datos no son correctos nos envia a index.php con error. Recuerda no cambiar donde dice user y pass, salamente si cambias los nombres de los campos del index.php

security.php

Código:
<?php
/*
Archivo: security.php
Autor: ZeRo- (ZeRo-@37.com)
Descripción: Comprueva que exista una sesion con los datos correctos, para asi acceder a la información
*/
//Inicio la sesión
session_start();

//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != "SI") {
//si no existe, envio a la página de autentificacion
header("Location: index.php");
//ademas salgo de este script
exit();
}
?>

Ok, si queremos proteger mas paginas... lo unico que debemos hacer es guardar el code de arriba y declarar un include hacia ese archivo en cualquier pagina que quieras proteger

Ejemplo:

Código:
<?php
include ("security.php");?>
<html>
<head>
<title>titulo</title>
</head>
bla...bla...bla...

logout.php

Código:
<?php
/*
Archivo: logout.php
Autor: ZeRo- (ZeRo-@37.com)
Descripción: Si existe la sesion, la destruye! = )
*/
session_start();
session_destroy();
?>
<html>
<head>
<title>Cerraste sesion</title>
</head>
<body>
<strong>has cerrado sesion! =)</strong>
</body>
</html>

Bueno en este archivo lo importante es destruir la sesion creada... para asi, al tener otra visita tener que volver a loguear y asi no tener problemas de que alguien mas pudo verla...

Puff.... escribí mucho... pero espero y les sirva! =)


En línea
chita_GB

Desconectado Desconectado

Mensajes: 51


-- COLO-COLO, PASION DE CHILE ENTERO--


Ver Perfil
Re: Proteger paginas en PHP con sesiones!
« Respuesta #1 en: 24 Mayo 2004, 12:51 »

Muy bueno! peeero, para variar, tengo un problema:(..la pagina security.php al parecer tiene error...asi lo deje, a ver quien me corrije..gracias
:: Index::
<form action="check.php" method="POST">
<table align="center" width="225" cellspacing="2" cellpadding="2" border="0">
<tr bgcolor="#000063">
<td colspan="2" align="center"
<?php if ($_GET["error"]=="data"){?>><span style="color:#fffff"><b>Error. Prueba de nuevo </b><span class="Estilo3">Ingrese los datos</span>
<?}?></td>
</tr>
<tr>
<td align="right" >Usuario:</td>
<td><input name="user" type="Text" maxlength="50"></td>
</tr>
<tr>
<td align="right">Password:</td>
<td><input name="pass" type="password" maxlength="50"></td>
</tr>
<tr>
<td colspan="2" align="center"><input name="Submit" type="Submit" value="Entrar!"></td>
</tr>
</table>

:: Check:
<?php
//checamos si los datos son correctos
if ($_POST["user"]=="escuela" && $_POST["pass"]=="portugal"){
//Si son validos... creo una sesion
//creando sesion y guardando datos
session_start();
$_SESSION["autentificado"]= "SI";
header ("Location: index2.php");
}else {
echo "Usuario o contraseña incorrecta."
?>
<a href="index.php">Vuelve a intentarlo</a>;
<?
}
?>
Hasta ahí todo bien, si pongo la clave, se va al index dos y perfecto...ahora hize la pagina security:
<?php
//Inicio la sesión
session_start();
?>
<html>
<head>
<title>Pillín</title>
</head>
<body bgcolor="#000066" text="#FFFF00" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<?
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != "SI") {
?>
No haz iniciado sesión, haz clic <a href="index.php">aquí</a> para iniciar
<?
//ademas salgo de este script
exit();
}
?>
</body>
</html>

::LOGOUT::
<?php
session_start();
session_destroy();
?>
<html>
<head>
<title>Gracias por cerrar sesión</title>
</head>
<body bgcolor="#000066" text="#FFFF00" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<h4 align="center">BIEEN, TE ACORDASTE DE CERRAR LA SESIÓN!! ESTÁS AYUDANDO A EVITAR QUE LOS SAPOS INGRESEN!!</h4>
</body>
</html>
</body>
</html>


En línea

gonzo...¡¡GB¡¡
Cicklow


Desconectado Desconectado

Mensajes: 604


-=Cicklow SOFT®=-


Ver Perfil WWW
Re: Proteger paginas en PHP con sesiones!
« Respuesta #2 en: 25 Mayo 2004, 01:37 »

yo no veo nningun error si pudieras colokar el error que te da seria mas facil de rastrear.
En línea

www.cicklow.com . Solo Soy Un Ciego que Ve El Sonido Del Silencio
.:ZeRo:.
Visitante


Email
Re: Proteger paginas en PHP con sesiones!
« Respuesta #3 en: 25 Mayo 2004, 03:30 »

el error esta en security.php

Código:
<?php
//Inicio la sesión
session_start();
?>
<html>
<head>
<title>Pillín</title>
</head>
<body bgcolor="#000066" text="#FFFF00" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<?
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != "SI") {
?>
No haz iniciado sesión, haz clic <a href="index.php">aquí</a> para iniciar
<?
//ademas salgo de este script
exit();
}
?>
</body>
</html>
ya que no debe haber nada mas de codigo y se debe de presentar en un include:

Ejemplo, si quieres proteger tu pagina de nintendo  =) debes ponerlo asi:

Código:
<?php include('security.php'); ?>
<html>
<title>mi pagina de nintendo</title> bla..bla....
y el security.php debe ser asi y no ponerle mas:

Código:
<?php
/*
Archivo: security.php
Autor: ZeRo- (ZeRo-@37.com)
Descripción: Comprueva que exista una sesion con los datos correctos, para asi acceder a la información
*/
//Inicio la sesión
session_start();

//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != "SI") {
//si no existe, envio a la página de autentificacion
header("Location: index.php");
//ademas salgo de este script
exit();
}
?>

Asi lo guardas como security.php y lo subes.... haber si me entendiste.

Si no... mas al rato subire en un zip todos los archivos para que entiendan mucho mejor!
En línea
chita_GB

Desconectado Desconectado

Mensajes: 51


-- COLO-COLO, PASION DE CHILE ENTERO--


Ver Perfil
Re: Proteger paginas en PHP con sesiones!
« Respuesta #4 en: 25 Mayo 2004, 09:26 »

Idolo, maestro!! funciono A LA PERFECCIÓN!
si que te deberian dar un sticky!
saludos..!
En línea

gonzo...¡¡GB¡¡
_the_master_36

Desconectado Desconectado

Mensajes: 91


¡Desarrolla Tu Vida!


Ver Perfil
Re: Proteger paginas en PHP con sesiones!
« Respuesta #5 en: 14 Enero 2005, 10:13 »

Y Como Podre hacer lo mismo pero con usuarios y password de una base de datos MySQL???

Me gustaria que me contestaras jejeje... :)
En línea




G3N3S1S

Desconectado Desconectado

Mensajes: 253


www.gandalf.tk


Ver Perfil WWW
Re: Proteger paginas en PHP con sesiones!
« Respuesta #6 en: 14 Enero 2005, 14:24 »

perdonen mi ignorancia pero que es un sticky ???
En línea

-Riven-Ward-
RivenSoft


Desconectado Desconectado

Mensajes: 2.216


Do you like Mario? xDDDDDDDDDDDD


Ver Perfil WWW
Re: Proteger paginas en PHP con sesiones!
« Respuesta #7 en: 16 Enero 2005, 08:51 »

Un sticky es una "chincheta". Esos post de arriba que nunca se salen de ahí, ¿los ves? Los que siempre decimos que vean. Esos :P.

_the_master_36... Aprende PHP y MySQL, y podrás hacerte un sistema de users a tu gusto, que creo que es lo mejor. Yo hice uno, pero por mientras corrijo bugs no lo pondré. A ver si lo pongo otro día *-).

Usa el buscador, hay muchos usuarios preguntando por lo mismo que tu.

Salu2!
En línea

Usuario Banneado
Nabucodonosor

Desconectado Desconectado

Mensajes: 99


La mejor dieta es el ejercicio


Ver Perfil WWW
Re: Proteger paginas en PHP con sesiones!
« Respuesta #8 en: 18 Enero 2005, 02:09 »

saludos phperos: *-]

he probado los dos archivos: index.php y check.php y siempre me da data=error, no lo entiendo, he probado llevando el form a un script que reconoce las variables con la directiva global $usuario, $pass y las reconoce y tiene lo valores que le enviado, pero al usar el form con el script del archivo check.php no funca, :-]

esta instruccion no devuelve nada!!! $_POST["usuario"]

y es por eso que siempre que devuelve a
index.php?error=data

estoy usando los archivos index y check sin ninguna modificacion, tal cual,  la unica cosilla cambiada es :
<input name="usuario" type="Text" maxlength="50"></td>
en vez de
<input name="user" type="Text" maxlength="50"></td>

ya que en el script del check.php me pregunta por la primera opcion y no la segunda.

porfa, no olvidar que las variables viajan al script, llegan, pero no funca con la opcion $_POST[]

y cuando quiero utilizar las variables con la opcion global me sale este horrible mensajote que no entiendo nada :-S

Warning: open(/tmp\sess_50415fdaf618c39a8ce57e5181944175, O_RDWR) failed: m (2) in c:/archivos de programa/abria merlin/apache/htdocs/session/check.php on line 12

Warning: Cannot add header information - headers already sent by (output started at c:/archivos de programa/abria merlin/apache/htdocs/session/check.php:12) in c:/archivos de programa/abria merlin/apache/htdocs/session/check.php on line 14

ayuda, please

||||||

Salu2!
« Última modificación: 18 Enero 2005, 02:28 por Nabucodonosor » En línea

Ser hacker no es un delito es un honor.
y para mi sera un honor llegar a ser uno :P
-Riven-Ward-
RivenSoft


Desconectado Desconectado

Mensajes: 2.216


Do you like Mario? xDDDDDDDDDDDD


Ver Perfil WWW
Re: Proteger paginas en PHP con sesiones!
« Respuesta #9 en: 18 Enero 2005, 02:59 »

Pues probé el sistema para ayudarte, y como te diste cuenta está mal puesto el nombre del input de usuario... Debería ser 'name="usuario"', y no 'name="user"'. Entonces, cambié eso por lo debido, y me funcionó bien...

¿Estás seguro de que no cambiaste nada mas? ¿Qué tal si nos pegas todos los códigos que pusiste para revisarlos?

Salu2!
En línea

Usuario Banneado
Nabucodonosor

Desconectado Desconectado

Mensajes: 99


La mejor dieta es el ejercicio


Ver Perfil WWW
Re: Proteger paginas en PHP con sesiones!
« Respuesta #10 en: 18 Enero 2005, 23:02 »

saludos phperos:

ok, voy a pegar todos los codigos, aqui va el del index.php:

<form action="check.php" method="POST">
  <table align="center" width="225" cellspacing="2" cellpadding="2" border="0">
    <tr>
      <td colspan="2" align="center"
<?php if ($_GET["error"]=="data"){?>
bgcolor=red><span style="color:#fffff"><b>Sux! Try Again! </b></span>
          <?}else{?>
      bgcolor=#666666 bordercolor="red"><span class="Estilo3">Enter you data </span>
      <?}?></td>
    </tr>
    <tr>
      <td align="right" >Usr:</td>
      <td><input name="usuario" type="Text" maxlength="50"></td>
    </tr>
    <tr>
      <td align="right">Pwd:</td>
      <td><input name="pass" type="password"  maxlength="50"></td>
    </tr>
    <tr>
      <td colspan="2" align="center"><input name="Submit" type="Submit" value="     Go!     "></td>
    </tr>
  </table>

ahora el check.php:

<?php
/*
Archivo: check.php
Autor: ZeRo- (ZeRo-@37.com)
Descripción: Compara los datos insertados en los campos, para asi crear una sesion configurada por cookies
*/
//checamos si los datos son correctos
if ($_POST["usuario"]=="padrino" && $_POST["pass"]=="password"){
//Si son validos... creo una sesion
//creando sesion y guardando datos
session_start();
$_SESSION["autentificado"]= "SI";
header ("Location: index2.php");
}else {
//si no existe le mando otra vez a la portada
header("Location: index.php?error=data");
}
?>

Volvi a probar y me sigue lanzando al index.php?error=data,
parece ser que las variables $_POST["usuario"] $_POST["pass"] no estan devolviendo ningun valor, por qué? :'(

espero lo revisen y ya saben que el unico cambio que hice fue el de name="user" por name="usuario"
En línea

Ser hacker no es un delito es un honor.
y para mi sera un honor llegar a ser uno :P
-Riven-Ward-
RivenSoft


Desconectado Desconectado

Mensajes: 2.216


Do you like Mario? xDDDDDDDDDDDD


Ver Perfil WWW
Re: Proteger paginas en PHP con sesiones!
« Respuesta #11 en: 18 Enero 2005, 23:44 »

Hagamos una prueba. En check.php pon todo lo que hay en un .txt, para "respaldarlo". Luego ahí pon:

Código:
<?php
echo $_POST["usuario"]." ".$_POST["pass"];
?>

Si no devuelve nada, es un error con el método POST, que podría venir de tu PHP, aunque no creo. Si devuelve algo, seguramente pusiste el password con una mayúscula o algo así... Prueba y me dices :)

Salu2!
En línea

Usuario Banneado
Nabucodonosor

Desconectado Desconectado

Mensajes: 99


La mejor dieta es el ejercicio


Ver Perfil WWW
Re: Proteger paginas en PHP con sesiones!
« Respuesta #12 en: 19 Enero 2005, 01:11 »

CONFIRMADO !!

no devuelve ningun valor la instruccion
echo $_POST["usuario"]." ".$_POST["pass"];
porque probe con
echo "ja!: ".$_POST["usuario"]." ".$_POST["pass"];y solo me devuelve
ja!:
asi que no hay duda, no devuelven ningun valor, que puedo hacer donde meto el dedo?, archivo php.ini, donde?, la verdad es que no se donde se arregla este problema :-S

SOS, mei dei mei dei
En línea

Ser hacker no es un delito es un honor.
y para mi sera un honor llegar a ser uno :P
-Riven-Ward-
RivenSoft


Desconectado Desconectado

Mensajes: 2.216


Do you like Mario? xDDDDDDDDDDDD


Ver Perfil WWW
Re: Proteger paginas en PHP con sesiones!
« Respuesta #13 en: 19 Enero 2005, 02:18 »

Pues entonces si es algo de tu PHP.

Prueba poniendo el método GET:

Código:
method="get"

Y

Código:
<?php
if ($_GET["usuario"]=="padrino" && $_GET["pass"]=="password"){
?>

O si no,

Código:
<?php
if ($usuario=="padrino" && $pass=="password"){
?>

O por último, déjalo en post y pone esto:

Código:
<?php
if ($HTTP_POST_VAR["usuario"]=="padrino" && $HTTP_POST_VAR["pass"]=="password"){
?>

Y pues si no funciona, me dices para seguir pensando xD

Salu2!
En línea

Usuario Banneado
Nabucodonosor

Desconectado Desconectado

Mensajes: 99


La mejor dieta es el ejercicio


Ver Perfil WWW
Re: Proteger paginas en PHP con sesiones!
« Respuesta #14 en: 21 Enero 2005, 02:29 »

Saludos PHPeros:

Finalmente,

funciono :) con las opciones de:

Código:
metod=POST

y accediendo directamente a las variables

Código:
if ($usuario="padrino" && $pass="password") {
pero ahora me sale el siguiente mensaje que segun yo quiere decir que ya no se puede añandir informacion a la cabecera por que ya esta enviada y no se puede acceder a ella, ojala me puedan orientar de como solucionar esa vaina que ya me tiene cabriao :'(

Warning: open(/tmp\sess_39b53f5e482ecf141306f3e965056153, O_RDWR) failed: m (2) in c:/archivos de programa/abria merlin/apache/htdocs/session/check.php on line 11

Warning: Cannot add header information - headers already sent by (output started at c:/archivos de programa/abria merlin/apache/htdocs/session/check.php:11) in c:/archivos de programa/abria merlin/apache/htdocs/session/check.php on line 13
En línea

Ser hacker no es un delito es un honor.
y para mi sera un honor llegar a ser uno :P
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines