Antes que nada decirles que no son fan de poner todas mis dudas para que me las resuelvan, yo busco y cuando no hayo ni para atras ni para adelante ahi si pregunto, ya busque de este tema y espero me ayuden !!!
Bien les explico y si en algo tienen consejos de seguridad les agradecere; yo implemente las sesiones en mi sistemita y lo hice asi :
Este es el codigo php del index (login) ya que el html para que lo pongo xD
Usando este tema:
aporte-seguridad-basica-php- que hizo el amigo Triby logre poner en practica algunos consejos de seguridad (algunos ya que otros aun no he podido xD)
Código PHP:
Ver original<?php
include('include/c.php');
if(!empty($_POST['user']) and
!empty($_POST['pass'])){ $user = '';
$pass = '';
$user = trim($_POST['user']); $pass = trim($_POST['pass']); $user = $mysqli->real_escape_string($user);
$pass = $mysqli->real_escape_string($pass);
$sql = $mysqli->query("SELECT * FROM users WHERE nombre='$user' and pass='$pass' ");
if($row = $sql->fetch_array(MYSQLI_ASSOC)){
if ($user == $row['nombre'] and $pass == $row['pass'])
{
$_SESSION['iduser'] = $row['id'];
$_SESSION['username'] = $row['nombre'];
$_SESSION['tipo_usu'] = $row['tipo'];
if(!$_SESSION['tipo_usu']=='0' ){
}
else{
}
}
else{
echo "<script language='JavaScript'>alert('Usuario o Password invalidos !!!');
</script>";
}
}
else{
echo "<script language='JavaScript'>alert('Usuario o Password invalidos !!!');
</script>";
}
}
?>
Bien eso pasa a un archivo que tiene el menu y todo eso, y el codigo php es el siguiente:
Código PHP:
Ver original<?php
include('include/c.php');
if(!$_SESSION['tipo_usu']=='1' or !$_SESSION['tipo_usu']=='2' or !$_SESSION['tipo_usu']=='3'){
}
$tipo = '';
$tipo = $_SESSION['tipo_usu'];
if ($tipo != 1 or $tipo != 2 or $tipo != 3){
$titulo = 'Intruso';
}
if($tipo == '1'){
$titulo='Admin';
}
if ($tipo == '2'){
$titulo = 'Cajero/a';
}
if ($tipo == '3'){
$titulo = 'Usuario';
}
mysqli_close($mysqli); //Ver el item 2 con respecto a esto por favor <==== ?>
Basicamente es normal el codigo, he buscado ponerle algo de seguridad y aun me falta (quiero encriptar los passwords pero eso lo hare luego ).
Tengo el cierre de sesion asi:
Código PHP:
Ver original<?php
$_SESSION['username']=NULL; //Esto esta bien ??? <===
$_SESSION['tipo_usu']=NULL; //Esto esta bien ??? <===
header("location:../index.php"); ?>
Y en la mayoria de archivos verifico a los usuarios y privilegios asi:
Código PHP:
Ver original<?php
include('c.php');
if($_SESSION['tipo_usu']=='1' or $_SESSION['tipo_usu']=='2'){
// Que haga lo que tiene que hacer
}
// Si no le pongo un error que dice que no tiene privilegios.
else {
header('location:../error.php'); }
?>
El problema que me aqueja ahorita son basicamente 2 en 1:
1- Yo estoy aun en localhost y me da la cosa que si inicio sesion en otro sistema de localhost los sistemas se pasan los datos de sesion entre ellos
![Stress](http://static.forosdelweb.com/fdwtheme/images/smilies/stress.png)
estoy en el sistema 1 sin entrar, entro en el sistema 2 con usuario "juan" entonces en el sistema 1 pongo la ruta del archivo que sigue despues del login y me muestra el usuario juan con titulo intruso (ya que asi lo tengo yo configurado) y viseversa, quisiera saber como solucionar eso o si en un servidor web eso ya no pasaria.
2- Quiero saber si es necesario cerrar la conexión ( mysqli->close() ) en cada proceso ?? segun he leido eso quita "velocidad" al sistema y que para evitarlo debo poner variables globales o sesiones globales pero eso no lo quiero implementar aun, la cosa es cierro la conexion en cada archivo php o lo dejo asi hasta que el cliente de logout ???
En espera de su amable ayuda, espero haberme dado a entender !!!