Foros del Web » Programando para Internet » PHP »

Tema de seguridad con php formularios, bd, etc.

Estas en el tema de Tema de seguridad con php formularios, bd, etc. en el foro de PHP en Foros del Web. Hola, soy novato en esto de programar y estoy haciendo un sitio web importante, por eso queria pedirles algunos consejos en cuanto a la seguridad ...
  #1 (permalink)  
Antiguo 24/08/2014, 11:37
 
Fecha de Ingreso: agosto-2014
Mensajes: 35
Antigüedad: 10 años, 4 meses
Puntos: 0
Tema de seguridad con php formularios, bd, etc.

Hola, soy novato en esto de programar y estoy haciendo un sitio web importante, por eso queria pedirles algunos consejos en cuanto a la seguridad del sitio web, como por ej, cuando paso el valor de una variable por URL (<a href=ksjncsd.php?var=dscs>) si es q se lo puede ocultar o no importa, y q otras cosas me pueden recomendar por lo de las inyecciones SQL, o algun enlace o algo q me recomienden leer para aprender de èsto. Tips para hacer mas seguro el sitio. ;) Muchas gracias
  #2 (permalink)  
Antiguo 24/08/2014, 11:56
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 7 meses
Puntos: 320
Respuesta: Tema de seguridad con php formularios, bd, etc.

El problema de la inyeccion sql se soluciona bindeando parametros, para eso es la funcion bind_param.

Los datos de seguridad como contraseñas, respuestas de preguntas de recuperacion y demas, se guardan con hashing.

No confies en nada que venga del navegador, y no confies en ninguna validacion de javascript.

PHP debe verificar todo y debe ser capaz de informar al usuario de cada error. javascript solo sirve para hacer mas amigable la experiencia del usuario, pero no confies en ningun dato que venga de el.

Podrias encriptar y desencriptar los paramentros que pasas como proteccion adicional.

Asegurate de que tu sitio tenga un certificdo ssl (para usar el protocolo https) con lo cual estas mas protegido contra ataques externos ya que toda la comunicacion va encriptada.

Te recomiendo leer este tema iniciado por @triby hace unos años, si bien hay cosas que se actualizaron en este tiempo, la gran mayoria aun son validas hoy en dia asi que como para empezar ahi tienes de sobra.

Saludos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #3 (permalink)  
Antiguo 24/08/2014, 12:08
 
Fecha de Ingreso: agosto-2014
Mensajes: 35
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Tema de seguridad con php formularios, bd, etc.

Te lo agradezco mucho amigo!
  #4 (permalink)  
Antiguo 25/08/2014, 06:32
Avatar de brimo300  
Fecha de Ingreso: agosto-2014
Ubicación: Mataró
Mensajes: 3
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: Tema de seguridad con php formularios, bd, etc.

Para evitar una injeccion SQL yo utilizo esta función para escapar los nombres propios de SQL

Código PHP:
$variable1=     filter_input(INPUT_POST"formulario");

// devuelve una cadena escapada de algunos caracteres que
// pudieran servir para un ataque de sql injection

function injection($cadena) {
    
$str_KeywordsSQL = array("select ","insert ","delete ","update ","union ");
    
$str_OperadoresSQL     = array("like ","and ","or ","not ","<",">","<>","=","<");
    
$str_DelimitadoresSQL     = array(";","(",")","'");
     
//Quitar palabras reservadas y operadores
for($i=0$i<count($str_KeywordsSQL); $i++) {
    
$cadena str_replace($str_KeywordsSQL[$i], "",strtolower($cadena) );
            }
            for(
$i=0$i<count($str_OperadoresSQL); $i++) {
                
$cadena str_replace($str_OperadoresSQL[$i], "",strtolower($cadena) );
            }
            for(
$i=0$i<count($str_DelimitadoresSQL); $i++) {
                
$cadena str_replace($str_DelimitadoresSQL[$i], "",strtolower($cadena) );
            }
     
            return 
$cadena;
        }
 
//Escapar las cadenas para avitar SQL Injection
$variable1injection($variable1); 

Etiquetas: bd, formularios, seguridad, sql, tema, variable
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 01:53.