oMega_2093 escribió:Para ello debrías aprender las vulnerabilidades más típicas en sitios web que básicamente son inyecciones SQL y ataques de cross site scripting o XSS. Owasp es un buen sitio donde empezar, y puedes buscar ayuda por Google buscando por esos títulos (sql injection, xss). Conocer qué es lo que te hace vulnerable te capacita para protegerte de ello.
El tráfico entre el cliente y el servidor irá en texto plano salvo que utilices HTTPS, y fíjate que la mayoría de sitios NO utilizan HTTPS. En cualquier caso, lo que no debes hacer es almacenar contraseñas de usuarios (ni tampoco correos electrónicos) en texto plano. En caso de que alguien comprometiera la seguridad de tu aplicación y accediera a la base de datos podría acceder a esos datos de los usuarios, lo cual no es bueno ni para ellos ni para ti.
Algunas pistas básicas son: validarlo todo, todo y todo, aceptar sólo lo aceptable en lugar de prohibir sólo lo indeseable y no aceptar nada de fuera, todos los paths deben ser internos y verificados antes de ser utilizados. Esas tres tonterías suelen ser la fuente de la mayor parte de problemas. No es coña, suele ser culpa del programador casi siempre, es mucho más fácil cascar una aplicación en PHP que el Apache. Pide a cualquier conocido que te deje su código PHP y evalúalo, o busca sistemas open source por la web y accede a los trackers de bugs, a ver qué es lo más habitual.
Muchas gracias por la respuesta.
La idea es ésa, ver qué vulnerabilidades hay en el sitio web de ejemplo y tratar de explotarlas para después solventarlas.
Sobre los correos electrónicos, si he de encriptarlos, ¿cómo podría después desencriptarlos para, por ejemplo, enviar un correo electrónico al usuario para avisarle de un pedido o cualquier cosa?
Y sobre las contraseñas, yo había pensado en sacar una codificación hash en parte del cliente, con javascript, y enviar esa codificación hash, que se calcularía cada vez al hacer login, y comparar las cadenas del hash en lugar de la contraseña.
Y, sobre el último párrafo, tengo algunas dudas. ¿A qué te refieres con validarlo todo y aceptar sólo lo aceptable? Es que no acabo de verlo.
Y lo de los paths, imagino que te refieres a que, siempre que haya una referencia a otra página del sitio, al entrar se verifique si pertenece a la lista de enlaces válidos dentro del servidor, ¿no? ¿Tiene algún nombre esto?
Y una última cosa, referente a los objetos: lo mejor es hacerlos ocultos, con __, y en una carpeta con acceso restringido, ¿verdad?
Un saludo.