Lo hago así
// Si el email y la contraseña son correctas
if(!isset($_SESSION['id_user'])) {
$_SESSION['id_user'] = $x;
}
[Mando a otra pagina a el usuario]
// Si el usuario sale "logout"
if(isset($_SESSION['id_user'])) {
unset($_SESSION['id_user']); }
Esta forma es valida? segura?
Tienes parseado el nombre de usuario y el email del lado del servidor para evitar overflows, Path Trasversal, Inyecciones SQL, Inyecciones HTML, Inyecciones PHP, Inyecciones de comandos, Stored y Reflected XSS, NullBytes, Response Spliting, CSRF y SSRF entre otros? Haces algo del lado del cliente para proteger ante DOM XSS, phishing, clickjacking, sameOrigen? Mandas las cabeceras adecuadas? Sirves data sensible por HTTP? Mandas la página de login por HTTPS o das alguna forma al cliente de validar que está en tu sitio? No hay ningún tipo de leaks? Compruebas que solo se usen caracteres alfanumerícos en el servidor para evitar ofuscación de código malicioso? Obligas a los usuarios a elegir contraseñas seguras? Manejas los códigos de errores y los leaks relacionados? Tiene alguna contramedida por si el recaptcha en algún momento puntual no se pudiese cargar? Qué tipo de mecanismo usas para recuperar una contraseña olvidada? Evitas que las cookies puedan ser accedidas desde javascript? Compruebas que no existan 2 nombres de usuario iguales? Te cargas la url de validación para que no sea usada múltiples veces por un usuario para registrar múltiples cuentas? Te aseguras que no se envían y no se hacen consultas con parámetros vacios? Tiras excepciones y manejas errores en todas las fases de loggeo para dar marcha atrás si se detecta algún fallo o que pasa si surge algún error inesperado? Das algún tipo de salida de errores en estos casos que pueda revelar información? Tienes logs para controlar lo que pasa en la aplicación? Loggeas información sensible como tokens, sessiones, etc? Tienes algún sistema de monitoreo para poder estar al tanto si recibes algún tipo de ataque para poder responder? Avisas a los usuarios de sus loggeos y de intentos de adivinar contraseñas...
En vez andar dando tumbos y aprender por la muy malas, podrías pasarte por el foro de dudas generales y hecharle un ojo a los libros para principiantes. También hay libros por ahí enfocados a la seguridad en el desarrollo web.