Foros del Web » Programando para Internet » PHP »

Codigo de Seguridad

Estas en el tema de Codigo de Seguridad en el foro de PHP en Foros del Web. hola a todos estoy interesado en saber como se puede hacer un codigo de seguridad .... actualmente desarrollo una pagina web(en php y mysql) y ...
  #1 (permalink)  
Antiguo 07/05/2004, 18:24
 
Fecha de Ingreso: mayo-2004
Mensajes: 3
Antigüedad: 20 años, 6 meses
Puntos: 0
Mensaje Codigo de Seguridad

hola a todos estoy interesado en saber como se puede hacer un codigo de seguridad ....

actualmente desarrollo una pagina web(en php y mysql) y esto se me hace indispensable a la hora que un cliente ingresa sus datos :

Nickname:
ejemplo: Carlos
Password:
123456123
Codigo de Seguridad
ejemplo(imagen mostrando combinacion aleatoria de numeros )

Tipea codigo de Seguridad: -----------tipeo el codigo anterior mostrado)

finalmente doy click en boton
login

Espero puedan ayudarme gracias .......
  #2 (permalink)  
Antiguo 07/05/2004, 18:37
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años, 6 meses
Puntos: 2
fichero: func.code.letras.inc.php
Código PHP:
<?php
function FUNC_generaPassw($num,$may){
    if(empty(
$num)){$num=5;}

    
$voc = array ("a","e","i","o","u");
    
$con = array ("b","c","d","f","g","h","j","k","l","m","n","ñ","p","q","r","s","t","w","x","y","z");
    
$psw "";
    
$vc  mt_rand(0,1);

        for (
$n=0$n<$num$n++){
            if (
$vc==1){
                
$vc=0;
                
$psw .= $con[mt_rand(0,count($con)-1)];
            }
            
$psw .= $voc[mt_rand(0,count($voc)-1)];
            
$psw .= $con[mt_rand(0,count($con)-1)];
        }

    
$psw ereg_replace ("q","qu",$psw);
    
$psw ereg_replace ("quu","que",$psw);
    
$psw ereg_replace ("yi","ya",$psw);
    
$psw ereg_replace ("iy","ay",$psw);

        if(empty(
$may)){
            
$psw strtoupper($psw);
        }

    
$psw substr($psw,0,$num);

    
session_name('codePaswSession');
    
session_start();
    
session_cache_limiter('nocache,private');
    
ini_set("session.cache_limiter","6400");

    if(empty(
$_SESSION['psw'])){
        
$_SESSION['psw'] = $psw;
    }else{
        
$psw $_SESSION['psw'];
    }
    
    return 
$psw;
}

function 
FUNC_imprimePasswImg($psw,$fontSize,$winSizeW,$winSizeH) {
    if(empty(
$psw)){$psw "ERROR PASSW";}
    if(empty(
$fontSize)){$fontSize=5;}
    if(empty(
$winSizeW)){$winSizeW=72;}
    if(empty(
$winSizeH)){$winSizeH=18;}

    
$width  ImageFontWidth($fontSize) * strlen($string);
    
$height ImageFontHeight($fontSize);
    
$img ImageCreate($winSizeW,$winSizeH);
    
$bgColor ImageColorAllocate($img,102,102,202);
    
$txColor ImageColorAllocate($img,220,220,220);
    
ImageFilledRectangle($img,0,0,$winSizeW,$winSizeH,$bgColor);
    
ImageString($img,$fontSize,0,0,$psw,$txColor);

    
header("content-type: image/png");
    
ImagePng($img);
    
Imagedestroy($img);

}

FUNC_imprimePasswImg(FUNC_generaPassw(8,1),5,72,18);

/*
1º= numero de letras = 8
2º= minusculas = 1 o mayusculas = 0
3º= size-text = 5
4º= sizeW-win = 100
5º= sizeH-win = 20

Para usarlo, crea un fichero xxx.html o xxx.php y le pones esto
1º= Si es HTML solo:
    <img src="func_codeletras.inc.php">

2º= Si ademas de HTML, quieres usar php:
     <img src="func_codeletras.inc.php">
    session_name('codePaswSession');
    session_start();
    session_cache_limiter('nocache,private');
    ini_set("session.cache_limiter","6400");

    echo $_SESSION['psw'];

*/
?>
__________________
3w.valenciadjs.com
3w.laislatv.com
  #3 (permalink)  
Antiguo 10/05/2004, 10:17
 
Fecha de Ingreso: mayo-2004
Mensajes: 3
Antigüedad: 20 años, 6 meses
Puntos: 0
He hecho lo siguiente :

1ro._He copiado el codigo dentro del archivo code.php.

2do._He creado un archivo index.html y he agregado lo siguiente

<TABLE >
<TR>
<td>Imagen</td>
<TD><img src="code.php"></TD>
</TR>
</TABLE>

Supuestamente si corro el index me deberia arrojar la imagen
con los numeros aleatorios ....

Pero no es asi , no me muestra nada ....

A que se debe ,....

Gracias
  #4 (permalink)  
Antiguo 17/05/2004, 10:52
 
Fecha de Ingreso: mayo-2004
Mensajes: 3
Antigüedad: 20 años, 6 meses
Puntos: 0
ALguien sabe si la forma como estoy corriendo el codigo es la correcta .....


Gracias por la respuesta .....
  #5 (permalink)  
Antiguo 17/05/2004, 11:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
El ejemplo de "nuevo" .. usa sesiones y las librerias GD (extensiones) .. así que cualquiera de estos factores puede ser que te esté afectando. Incluso la versión de PHP por el acceso a ciertas variables (superglobales para las sesiones).

Las funciones de GD que se usan .. parece que son compatibles entre las versiones 1.x y las 2.x de las mismas.

Revisa o comentanos si tienes instalado todo eso y configurado (sobre todo el tema de sesiones .. El "SID" se asume que se propaga en cookies según los ejemplos o por lo menos automáticamente ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 23/12/2004, 03:15
 
Fecha de Ingreso: diciembre-2004
Mensajes: 2
Antigüedad: 19 años, 11 meses
Puntos: 0
Una pequeña correcion

El codigo que pusieron aqui si funciona solo le tienes que corregir un pequeño error de sintaxis, aqui esta el codigo ya corregido

Código PHP:
<?php 
function FUNC_generaPassw($num,$may){ 
    if(empty(
$num)){$num=5;} 
    
$voc = array ("a","e","i","o","u"); 
    
$con = array ("b","c","d","f","g","h","j","k","l","m","n","ñ","p","q","r","s","t","w","x","y","z"); 
    
$psw ""
    
$vc  mt_rand(0,1); 
        for (
$n=0$n<$num$n++){ 
            if (
$vc==1){ 
                
$vc=0
                
$psw .= $con[mt_rand(0,count($con)-1)]; 
            } 
            
$psw .= $voc[mt_rand(0,count($voc)-1)]; 
            
$psw .= $con[mt_rand(0,count($con)-1)]; 
        } 
    
$psw ereg_replace ("q","qu",$psw); 
    
$psw ereg_replace ("quu","que",$psw); 
    
$psw ereg_replace ("yi","ya",$psw); 
    
$psw ereg_replace ("iy","ay",$psw); 
        if(empty(
$may)){ 
            
$psw strtoupper($psw); 
        } 
    
$psw substr($psw,0,$num); 
    
session_name('codePaswSession'); 
session_start(); 
    
session_cache_limiter('nocache,private'); 
    
ini_set("session.cache_limiter","6400"); 
    if(empty(
$_SESSION['psw'])){ 
        
$_SESSION['psw'] = $psw
    }else{ 
        
$psw $_SESSION['psw']; 
    } 
    return 
$psw

function 
FUNC_imprimePasswImg($psw,$fontSize,$winSizeW,$winSizeH) { 
    if(empty(
$psw)){$psw "ERROR PASSW";} 
    if(empty(
$fontSize)){$fontSize=5;} 
    if(empty(
$winSizeW)){$winSizeW=72;} 
    if(empty(
$winSizeH)){$winSizeH=18;} 
    
$width  ImageFontWidth($fontSize) * strlen($string); 
    
$height ImageFontHeight($fontSize); 
    
$img ImageCreate($winSizeW,$winSizeH); 
    
$bgColor ImageColorAllocate($img,102,102,202); 
    
$txColor ImageColorAllocate($img,220,220,220); 
    
ImageFilledRectangle($img,0,0,$winSizeW,$winSizeH,  $bgColor); 
    
ImageString($img,$fontSize,0,0,$psw,$txColor); 
    
header("content-type: image/png"); 
    
ImagePng($img); 
Imagedestroy($img); 

FUNC_imprimePasswImg(FUNC_generaPassw(8,1),5,72,18  ); 
/* 
1º= numero de letras = 8 
2º= minusculas = 1 o mayusculas = 0 
3º= size-text = 5 
4º= sizeW-win = 100 
5º= sizeH-win = 20 

Para usarlo, crea un fichero xxx.html o xxx.php y le pones esto 
1º= Si es HTML solo: 
    <img src="func_codeletras.inc.php"> 

2º= Si ademas de HTML, quieres usar php: 
    <img src="func_codeletras.inc.php"> 
    session_name('codePaswSession'); 
    session_start(); 
    session_cache_limiter('nocache,private'); 
    ini_set("session.cache_limiter","6400"); 

    echo $_SESSION['psw']; 

*/ 
?>
  #7 (permalink)  
Antiguo 23/12/2004, 03:19
 
Fecha de Ingreso: diciembre-2004
Mensajes: 2
Antigüedad: 19 años, 11 meses
Puntos: 0
Correccion a mi Correccion

Bueno no se si sea mi navegador o asi lo ven todos pero en el codigo anterior en la linea
Código PHP:
function FUNC_imprimePasswImg($psw,$fontSize,$winSizeW,$win  SizeH) { 
no se porque aparece separado el $winSizeH aunque lo haya puesto pegado, pero bueno si te aparece lo mismo que ami ya sabes como corregirlo
  #8 (permalink)  
Antiguo 24/12/2004, 11:07
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años, 6 meses
Puntos: 2
si es un error de copiar y pegar... se supone que va junto...
de hay quizas el q no se realize correctamente el code.
__________________
3w.valenciadjs.com
3w.laislatv.com
  #9 (permalink)  
Antiguo 12/02/2005, 08:50
 
Fecha de Ingreso: junio-2004
Mensajes: 60
Antigüedad: 20 años, 5 meses
Puntos: 1
claro, solo ponlo todo junto y ya esta solucionado

function FUNC_imprimePasswImg($psw,$fontSize,$winSizeW,$win SizeH) {

muy bueno.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:40.