- Mensajes
- 166
- Puntuación de reacción
- 0
Buenas queria compartir con ustedes estos datos que me parecen importantes como medida de seguridad a la hora de enviar datos por formularios, de esta formas evitas ser vulnerado!
Verificaciones del lado del cliente
Para las verificaciones del lado del cliente tenemos que tener en cuenta los siguientes puntos:
Para nuestro ejemplo primero vamos a hacer un pequeño formulario en HTML con verificaciones basicas como el siguiente:
Verificaciones del lado del servidor
Hay muchos puntos que tratar a la hora de hacer seguros los formularios para evitar que te inyecten por ahí y un punto muy importante es ver la seguridad del lado del servidor.
Hay que revisar siempre los siguientes puntos:
A continuación les dejo un código sencillo que recibe los datos del formulario anteriormente creado.
Si tienen dudas con alguna parte del código solo me avisan y estaré complacido de responderles.
Continuando con el tema les doy unos extras y consejos.
Extras y Tips
"A los programadores que se inician, no tengan miedo de desarrollar por el tema de la seguridad, día a día que avancen mejoraran y se perfeccionaran con el fin de ser mejores"
Hasta aquí llega este tutorial aparte de que ya es muy tarde y tengo sueño, si alguien desea que haga un tutorial sobre un tema de programación en especifico comentelo en este tema y lo realizare si esta dentro de mi posibilidades.
Saludos!
Limpiar formularios post y gets de malintencionados [Novatos]
Verificaciones del lado del cliente
Para las verificaciones del lado del cliente tenemos que tener en cuenta los siguientes puntos:
- No son seguros para usuarios avanzados en computación.
- Pueden ser manipulados desde la consola de los navegadores.
- Se pueden implementar en HTML5 verificaciones mas fáciles por ejemplo: Emails y Obligatorio
- Es mejor hacer reforzar las validaciones con Javascript
Para nuestro ejemplo primero vamos a hacer un pequeño formulario en HTML con verificaciones basicas como el siguiente:
HTML:
<form method="post">
<input type="text" name="nombre" placeholder="Escribe tu nombre aquí">
<input type="email" name="email" placeholder="Escribe tu E-mail aquí">
</form>
Para verificaciones del lado del cliente mas avanzadas y superiores recomiendo usar Parsley - The ultimate JavaScript form validation library
Sin duda es para mi la mejor librería para este tipo de verificaciones y lo haces con JavaScript.
Sin duda es para mi la mejor librería para este tipo de verificaciones y lo haces con JavaScript.
Verificaciones del lado del servidor
Hay muchos puntos que tratar a la hora de hacer seguros los formularios para evitar que te inyecten por ahí y un punto muy importante es ver la seguridad del lado del servidor.
Hay que revisar siempre los siguientes puntos:
- Limpiar los datos recibidos en el servidor.
- Limitar el tamaño al justo y necesario para el tipo de entrada que vas a almacenar o que vas a recibir en el archivo procesador.
- No uses shorttags <? ?> la mejor manera de programar sin que te de errores de compatibilidad es indicandole al codigo el tag completo <?php ?>
- Documenta siempre lo que estas programando porque se te puede olvidar que hace una parte del codigo.
- Si se recibe un password lo mejor es encriptarlo con un hash unico ya que MD5 o SHA-1 no son 100% seguros.
A continuación les dejo un código sencillo que recibe los datos del formulario anteriormente creado.
PHP:
<?php
//Recibimos los datos por POST y los almacenamos en las variables correspondientes
$nombre = $_POST["nombre"];
$email = $_POST["email"];
/*Limpiamos lo strings de cualquier intento de hacking.
*strip_tags elimina etiquetas
*trim elimina espacios en blanco
*real_escape_string devuelve un valor real para ser ingresado en la base de datos.
*/
$nombre = strip_tags(trim($mysqli->real_escape_string($nombre)));
$email= strip_tags(trim($mysqli->real_escape_string($email)));
// Calculamos la longitud de cada cadena
$longitud_nombre = strlen($email);
$longitud_email = strlen($email);
//Filtramos que el nombre no sea mayor a 20 por seguridad y para reducir el tamaño en la base de datos y evitar que pongan cosas tontas
if($longitud_nombre < 20){
//Filtramos que el emailno sea mayor a 20 por seguridad y esto incluye ya contando el tamaño del dominio, por ejemplo hotmail.com
if($longitud_email < 80){
//Validamos si el email es valido desde el servidor
if(filter_var($email, FILTER_VALIDATE_EMAIL)){
//Revisamos en la base de datos si el email esta en uso (Solo para forms de registros o ingreso de datos y no se permite repetir el campo)
$sql = "SELECT * FROM nombretabla WHERE Email = '$email'";
$resultado = $mysqli->query($sql);
if($resultado->num_rows < 1){
//Si suspera todas las validaciones anteriores puedes ingresar los datos a la BD o sino puedes mostrarlos o guardarlos como tu quieras.
$insertardatos = "INSERT INTO nombretabla (Nombre,Email) VALUES ('$nombre','$email')";
$mysqli->query($insertardatos);
echo "Datos agregados exitosamente.";
}else{
echo "El E-mail ya esta en uso.";
}
}else{
echo "El E-mail no es valido.";
}
}else{
echo "El E-mail excede la longitud permitida.";
}
}else{
echo "El nombre excede la longitud permitida.";
}
?>
Si tienen dudas con alguna parte del código solo me avisan y estaré complacido de responderles.
Continuando con el tema les doy unos extras y consejos.
Extras y Tips
- Si no tienen dinero para costear su hosting vps y licencias usen hosting compartidos altamente seguros que les ofrezcan como mínimo Anti-Ddos (Con esto estamos constatando que el serivicio es de calidad).
- Si van a usar un VPS asegúrate de tener el presupuesto para cubrir el servidor adecuado, la licencia de panel si utilizaras, recomiendo incluir Clouduflare, aparte recomiendo Nginx en vez de apache o lite speed esto para acelerar los servicios webs del servidor y en definitiva un buen antivirus, recuerden que van a tener acceso ftp si asi deciden instalarlo y así mismo sus correos pertinentes creo yo.
- Si vas a transferir datos de alta importancia no olvides tener tu certificado SSL de buena calidad recomiendo sin duda alguna los certificados de www.comodo.com
- Se detallista a la hora de buscar errores en el sistema no dejes ni un solo detalle por revisar ya que el mas mínimo error puede ser el acabose de tu sitio web.
"A los programadores que se inician, no tengan miedo de desarrollar por el tema de la seguridad, día a día que avancen mejoraran y se perfeccionaran con el fin de ser mejores"
Hasta aquí llega este tutorial aparte de que ya es muy tarde y tengo sueño, si alguien desea que haga un tutorial sobre un tema de programación en especifico comentelo en este tema y lo realizare si esta dentro de mi posibilidades.
Saludos!
Última edición: