Autor Tema: [!TUT] Login para tu página.  (Leído 2371 veces)

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
[!TUT] Login para tu página.
« en: 08 de Diciembre de 2009, 13:17:11 pm »
Bueno, aquí les enseñare a como proteger su página con contraseña y que al mismo tiempo no sea vulnerable, es un tutorial fácil con fin de aprendizaje para novatos. Comenzamos con el code.
index.htm
Citar
<html>
<
body>
<
form action="proteger.php" method="post">
Nick:<input type="text" name="nick"/><br/>
Pass:<input type="password" name="pass"/>
</
form>
</
body>
</
html>
proteger.php
Citar
<?
if(isset($_POST[&#39;nick&#39;]) AND $_SERVER[&#39;HTTP_REFERER&#39;] != &#39;&#39;){ //Verificamos que pulso el boton y que no entro directamente al archivo
echo (in_array(NULL$_POST)) ? Header(&#39;Location: index.htm&#39;) : NULL; //Verificamos si dejo un campo vacio
define(USER,"TU usuario"); //Definimos las variable USER
define(PASS,"TU pass"); //Definimos la variable PASS
$pass htmlentities($_POST[&#39;pass&#39;]); //Pasamos los resultados a texto plano para evitar un Injection.
$nick htmlentities($_POST[&#39;nick&#39;]); //Pasamos los resultados a texto plano para evitar un Injection.
echo ($pass == PASS AND $nick == USER) ? &#39;Aqui el codigo html de la web&#39; : Header(&#39;Location: index.htm&#39;); //Verificamos si la contraseña y el usuario concuerdan
} else {
Header(&#39;Location: index.htm&#39;); //Si entraron directamente a la pagina los redireccionamos al index
}
?>
by Focux
« Última modificación: 30 de Diciembre de 2009, 17:41:05 pm por Focux »
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Comunidad PHPeros

[!TUT] Login para tu página.
« en: 08 de Diciembre de 2009, 13:17:11 pm »

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[!TUT] Login para tu página.
« Respuesta #1 en: 08 de Diciembre de 2009, 14:18:27 pm »
Yo creo qu , te has liado mucho con el code ¿No? Solo con poner a cada variable mysql_real_escape_string ya valía.

#Fdo. Physlet

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[!TUT] Login para tu página.
« Respuesta #2 en: 08 de Diciembre de 2009, 14:32:28 pm »
Yo creo qu , te has liado mucho con el code ¿No? Solo con poner a cada variable mysql_real_escape_string ya valía.
¿De qúe hablas si lo puse?, creo que no leiste el código, para la proxima leetelo y luego opina.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[!TUT] Login para tu página.
« Respuesta #3 en: 08 de Diciembre de 2009, 14:35:01 pm »
Que si , focux , que si lo he leido , pero que me refiero que en vez de el code proteger.php , poner tanto code , con haber puesto

$pass = mysql_real_escape_string($_POST['pass']); //Pasamos los resultados a texto plano para evitar un Injection.
$nick = mysql_real_escape_string($_POST['nick']); //Pasamos los resultados a texto plano para evitar un Injection.

Te hubieses ahorrado todo el code.

#Fdo. Physlet

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[!TUT] Login para tu página.
« Respuesta #4 en: 08 de Diciembre de 2009, 14:41:36 pm »
Eso fue lo que puse, realmente no te entiendo nada.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[!TUT] Login para tu página.
« Respuesta #5 en: 08 de Diciembre de 2009, 14:42:35 pm »
Bueno dejalo , de todas formas esta bién. Gracias por el aporte.

#Fdo. Physlet

Desconectado NDSi

  • PHPero Avanzado
  • ****
  • Mensajes: 410
  • Karma: 8
  • Sexo: Masculino
    • Ver Perfil
Re:[!TUT] Login para tu página.
« Respuesta #6 en: 08 de Diciembre de 2009, 22:30:45 pm »
Yo cuando solo yo debo entrar a una parte de la web pongo if($_POST['pass']==LA CLAVE QUE LE ASIGNO) { PASA } else { NO PASA } ¿Supongo que es seguro?

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[!TUT] Login para tu página.
« Respuesta #7 en: 08 de Diciembre de 2009, 22:34:41 pm »
Yo cuando solo yo debo entrar a una parte de la web pongo if($_POST['pass']==LA CLAVE QUE LE ASIGNO) { PASA } else { NO PASA } ¿Supongo que es seguro?
No, agregale la funcion mysql_real_escape_string()
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re:[!TUT] Login para tu página.
« Respuesta #8 en: 08 de Diciembre de 2009, 22:35:37 pm »
Yo cuando solo yo debo entrar a una parte de la web pongo if($_POST['pass']==LA CLAVE QUE LE ASIGNO) { PASA } else { NO PASA } ¿Supongo que es seguro?
no tiene sentido porque cada vesz tendira que poner una pass

Desconectado NDSi

  • PHPero Avanzado
  • ****
  • Mensajes: 410
  • Karma: 8
  • Sexo: Masculino
    • Ver Perfil
Re:[!TUT] Login para tu página.
« Respuesta #9 en: 08 de Diciembre de 2009, 22:35:49 pm »
No, agregale la funcion mysql_real_escape_string()

Ah muchas gracias ;)

Pero esa pass solo la se yo y se supone que la se de memoria.

Desconectado TheGeorge

  • PHPero Avanzado
  • ****
  • Mensajes: 351
  • Karma: 13
  • Sexo: Masculino
    • Ver Perfil
    • websources
Re:[!TUT] Login para tu página.
« Respuesta #10 en: 09 de Diciembre de 2009, 04:21:48 am »
Segun lo que dices tu NDSI que la pass la asignas tu y no usaras base de datos entonces no es necesario mysql escape string.... puedes hacerlo ta cual tu mencionastes..
¡Solo sé, que nada sé...!

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[!TUT] Login para tu página.
« Respuesta #11 en: 09 de Diciembre de 2009, 13:17:35 pm »
Segun lo que dices tu NDSI que la pass la asignas tu y no usaras base de datos entonces no es necesario mysql escape string.... puedes hacerlo ta cual tu mencionastes..
mysql_real_escape_string no es solo para mysql, ya que su funcion es escapar la cadena llevandolo a texto plano.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado Tope

  • PHPero Experto
  • *****
  • Mensajes: 540
  • Karma: 23
  • Sexo: Masculino
  • Programador PHP
    • Ver Perfil
    • www.Info-Keko.Es
Re:[!TUT] Login para tu página.
« Respuesta #12 en: 09 de Diciembre de 2009, 15:33:19 pm »
En lugar de usar mysql_real_escape_string() puedes utilizar addslashes() que es lo mismo.

Yo pongo mi granito de arena:

<?php

if(isset($_POST[&#39;nick&#39;]) && isset($_POST[&#39;pass&#39;]) && !empty($_POST[&#39;nick&#39;]) && !empty($_POST[&#39;pass&#39;]) && !empty($_SERVER[&#39;HTTP_REFERER&#39;])){
	
// Comprobamos que se reciban los campos nick y pass, luego que no esten vacios y por ultimo que no haya entrado directamente.
	
$pass addslashes($_POST[&#39;pass&#39;]);
	
$nick addslashes($_POST[&#39;nick&#39;]);
	
if(
$nick == &#39;USUARIO&#39; && $pass == &#39;CONTRASEÑA&#39;){
	
	
/* AQUI PONEMOS EL PANEL DE ADMINISTRACIÓN O LO QUE PROCEDA */
	
} else {
	
	
header(&#39;Location: error.php?e=&#39;.urlencode(&#39;Usuario y/o contraseña incorrectos&#39;));
	
}
} else {
	
header(&#39;Location: error.php?e=&#39;.urlencode(&#39;No has indicado el usuario o contraseña&#39;));
}
?>


Es básicamente lo mismo
Un Saludo, Tope >> Programador FIJO en PHPeros

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[!TUT] Login para tu página.
« Respuesta #13 en: 09 de Diciembre de 2009, 18:21:07 pm »
En lugar de usar mysql_real_escape_string() puedes utilizar addslashes() que es lo mismo.

Yo pongo mi granito de arena:

<?php

if(isset($_POST[&#39;nick&#39;]) && isset($_POST[&#39;pass&#39;]) && !empty($_POST[&#39;nick&#39;]) && !empty($_POST[&#39;pass&#39;]) && !empty($_SERVER[&#39;HTTP_REFERER&#39;])){
	
// Comprobamos que se reciban los campos nick y pass, luego que no esten vacios y por ultimo que no haya entrado directamente.
	
$pass addslashes($_POST[&#39;pass&#39;]);
	
$nick addslashes($_POST[&#39;nick&#39;]);
	
if(
$nick == &#39;USUARIO&#39; && $pass == &#39;CONTRASEÑA&#39;){
	
	
/* AQUI PONEMOS EL PANEL DE ADMINISTRACIÓN O LO QUE PROCEDA */
	
} else {
	
	
header(&#39;Location: error.php?e=&#39;.urlencode(&#39;Usuario y/o contraseña incorrectos&#39;));
	
}
} else {
	
header(&#39;Location: error.php?e=&#39;.urlencode(&#39;No has indicado el usuario o contraseña&#39;));
}
?>


Es básicamente lo mismo
Si, como dices basicamente es igual, pero que hace la funcion urlencode?
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado TheGeorge

  • PHPero Avanzado
  • ****
  • Mensajes: 351
  • Karma: 13
  • Sexo: Masculino
    • Ver Perfil
    • websources
Re:[!TUT] Login para tu página.
« Respuesta #14 en: 09 de Diciembre de 2009, 18:53:58 pm »
aveces cuando uso la funcion addslashes o stripslashes me devuelve false :S
y por eso no la uso... :(
¡Solo sé, que nada sé...!