php - manejo - Cookies vs. sesiones
set cookie php (10)
Empecé a usar PHP hace un par de meses. Con el objetivo de crear un sistema de inicio de sesión para mi sitio web, leo sobre las cookies y las sesiones y sus diferencias (las cookies se almacenan en el navegador del usuario y las sesiones en el servidor). En ese momento, prefería las cookies (y ¿a quién no le gustan las cookies ?!) y solo decía: "¿A quién le importa? No tengo nada bueno para almacenarlo en mi servidor", así que seguí usando las cookies para mi proyecto de graduación de bachiller Sin embargo, después de hacer la mayor parte de mi aplicación, escuché que para el caso particular de almacenar la identificación del usuario, las sesiones son más apropiadas. Entonces comencé a pensar qué diría si el jurado me pregunta por qué ha usado cookies en lugar de sesiones. Solo tengo esa razón (que no necesito almacenar internamente información sobre el usuario). ¿Es eso suficiente como una razón ? o es mas que eso?
¿Podría decirme acerca de las ventajas / desventajas de usar cookies para mantener la ID del usuario?
¡Gracias por todos ustedes en StackOverflow!
Como dijeron otros, las sesiones son inteligentes y tienen más ventajas de ocultar la información del cliente.
Pero Cookie todavía tiene al menos una ventaja , puede acceder a sus Cookies desde Javascript (por ejemplo, ngCookies ). Con la sesión de PHP no puede acceder a ella en ningún lugar fuera del script de PHP.
El concepto es almacenar datos persistentes entre cargas de página para un visitante web. Las cookies lo almacenan directamente en el cliente. Las sesiones usan una cookie como una especie de clave, para asociar con los datos que se almacenan en el lado del servidor.
Se prefiere utilizar sesiones porque los valores reales están ocultos para el cliente y usted controla cuándo expiran los datos y se vuelve inválido. Si todo estuviera basado en cookies, un usuario (o hacker) podría manipular sus datos de cookies y luego reproducir las solicitudes en su sitio.
Editar: no creo que haya ninguna ventaja al usar cookies, aparte de la simplicidad. Mírelo de esta manera ... ¿El usuario tiene algún motivo para saber su número de identificación? Normalmente, diría que no, el usuario no necesita esta información. Repartir información debe estar limitada por la necesidad de conocerla. ¿Qué sucede si el usuario cambia su cookie para tener una identificación diferente, cómo responderá su aplicación? Es un riesgo de seguridad.
Antes de que las sesiones fueran furor, básicamente tenía mi propia implementación. Almacé un valor de cookie único en el cliente y almacené mis datos persistentes en la base de datos junto con ese valor de cookie. Luego, en las solicitudes de página, hice coincidir esos valores y obtuve mis datos persistentes sin permitir que el cliente controlara lo que era.
En realidad, la sesión y las cookies no son siempre cosas separadas. A menudo, pero no siempre, la sesión usa cookies.
Aquí hay algunas buenas respuestas a su pregunta en estas otras preguntas. Debido a que su pregunta es específicamente sobre guardar la IDU (o ID) del usuario, no creo que sea un duplicado de esas otras preguntas, pero sus respuestas deberían ayudarlo.
Ideas básicas para distinguir entre esos dos.
Sesión:
- IDU se almacena en el servidor (es decir, en el servidor)
- Más seguro (debido a 1)
- No se puede establecer la caducidad, las variables de sesión expirarán cuando los usuarios cierren el navegador. (hoy en día se almacena por 24 minutos como predeterminado en php)
Galletas:
- IDU se almacena en el navegador web (es decir, en el lado del cliente)
- No es muy seguro, ya que los hackers pueden alcanzar y obtener su información (debido a 1)
- La expiración se puede establecer (ver setcookies() para más información)
La sesión es preferida cuando necesita almacenar información / valores a corto plazo, como variables para calcular, medir, consultar, etc.
Se prefieren las cookies cuando necesita almacenar información / valores a largo plazo, como la cuenta del usuario (de modo que incluso cuando cierren la computadora durante 2 días, su cuenta aún esté conectada). No puedo pensar en muchos ejemplos para las cookies, ya que no se adopta en la mayoría de las situaciones.
Las sesiones le permiten almacenar datos individuales al igual que con las cookies, pero los datos se almacenan en el servidor en lugar del cliente.
Seleccionaré la sesión, en primer lugar la sesión es más segura que las cookies, las cookies son los datos del sitio del cliente y la sesión son los datos del sitio del servidor. Las cookies se utilizan para identificar a un usuario, ya que se trata de pequeños fragmentos de código que mi servidor incorpora en el navegador de la computadora del usuario. Por otro lado, Session lo ayuda a proteger su identidad porque el servidor web no sabe quién es usted porque la dirección HTTP cambia el estado de 192.168.0.1 a 765487cf34ert8ded ... ..o algo más, con la ayuda de los métodos GET y POST. La sesión almacena los datos del usuario en una sesión de ID única que incluso la identificación del usuario no puede coincidir entre sí. La sesión almacena información de usuario único en todas las páginas de una aplicación. Las cookies caducan se establece con la ayuda de setcookies (), mientras que la sesión caduca no está establecida, caduca cuando el usuario apaga los navegadores.
Session y Cookie no son lo mismo.
Una sesión se usa para almacenar la información de las páginas web. Normalmente, las páginas web no tienen ningún recuerdo para almacenar esta información. Pero usando podemos guardar la información necesaria.
Pero Cookie se usa para identificar a los usuarios. Usando cookies podemos almacenar los datos. Es una pequeña parte de los datos que se almacenarán en el navegador web del usuario. Por lo tanto, cada vez que el usuario explore la próxima vez, envíe de vuelta la información de datos de la cookie al servidor para obtener las actividades anteriores.
Créditos: Sesión y Cookie
Yo personalmente uso ambas cookies y sesión.
Las cookies solo se utilizan cuando el usuario hace clic en la casilla "Recordarme" . y también las cookies se cifran y los datos solo se descifran en el servidor. Si alguien intenta editar las cookies nuestro descifrador puede detectarlo y rechazar la solicitud.
He visto tantos sitios donde la información de inicio de sesión se almacena en las cookies , cualquiera puede simplemente cambiar la identificación del usuario y el nombre de usuario en las cookies para acceder a cualquier cuenta.
Gracias,
cuando guarda el #ID como la cookie para reconocer a los usuarios que han iniciado sesión, en realidad está mostrando datos a los usuarios que no están relacionados con ellos. Además, si un tercero intenta establecer identificaciones aleatorias como datos de cookies en su navegador, podrán convencer al servidor de que son usuarios mientras que en realidad no lo son. Esa es una falta de seguridad.
Usó cookies, y como dijo, ya ha completado la mayor parte del proyecto. además cookie tiene el privilegio de permanecer por un largo tiempo, mientras que las sesiones terminan más rápido. Entonces las sesiones no son adecuadas en este caso. En realidad, muchos sitios web y servicios famosos y populares usan cookies y usted puede permanecer conectado durante mucho tiempo. Pero, ¿cómo puede usar su método para crear un proceso de inicio de sesión más seguro?
esta es la idea: puede ayudar en la forma en que usa las cookies: si usa claves aleatorias en lugar de identificadores para reconocer a los usuarios que han iniciado sesión, primero, no filtra sus datos primarios a usuarios aleatorios, y segundo, si considera los Aleatorios clave lo suficientemente grande, será más difícil para cualquiera adivinar una clave o crear una aleatoria. por ejemplo, puede guardar una clave de 40 longitudes como esta en el navegador del Usuario: "KUYTYRFU7987gJHFJ543JHBJHCF5645UYTUYJH54657jguthfn" y será menos probable que alguien cree la clave exacta y pretenda ser otra persona.
SESSIONS ENDS WHEN USER CLOSE HIS BROWSER,
COOKIES ENDS DEPENDING ON THE LIFE TIME YOU SET FOR IT. SO IT CAN LAST FOR YEARS
Esta es la principal diferencia. en tu elección,
Si desea que el idu sea recordado por mucho tiempo, entonces necesita usar cookies, de lo contrario, si solo desea que el sitio web reconozca al usuario para esta visita, solo entonces las sesiones son su hombre.
Espero eso ayude :)
-- explicación adicional.
Las sesiones se almacenan en un archivo que su servidor php generará, y para recordar qué archivo es para cada usuario, php también establecerá una cookie en el navegador del usuario que hojee el ID de este archivo de sesión, por lo que en su próxima visita php leerá este archivo y lo volverá a cargar sesión.
ahora php por defecto borra las sesiones en cada intervalo, y también el nombre de la convención de la sesión hace que caduque automáticamente. Además, los navegadores no mantendrán cookies que contengan la identificación de la sesión una vez cerrada / sin historial.
es importante notar que los navegadores actuales también admiten otro tipo de motores de almacenamiento que son:
LocalStorage, SessionStorage y otros motores webdb que el código de JavaScript puede usar para guardar datos en su computadora para recordarlo. simplemente abra la consola de JavaScript dentro de Facebook y escriba "localStorage" enter. le mostrará todas las variables que use para recordarlo sin cookies.