2009-08-15 18 views
17

Con respecto a la seguridad y la conveniencia de que las cookies son mejores que las de PHP o Javascript?Cookies - PHP vs Javascript

+14

No sabía que las cookies HTTP tenían diferentes sabores. –

+3

@Greg, de hecho lo hace :). Hay una especificación Cookie2. Sin embargo, solo es compatible con Opera. –

+2

Las cookies y la seguridad nunca van en la misma oración. –

Respuesta

33

Son los mismos, en ambos casos la cookie se envía al navegador, se almacena allí y el navegador la envía de vuelta a usted cada solicitud hasta que caduque o se elimine.

Por esa razón, nunca debe usar cookies para la seguridad ya que su pregunta no implica ni para ningún dato que considere importante mantener inalterado por el usuario final.

Hay cinco cosas para recordar siempre cuando se utiliza cookies:
1 - no se puede confiar en su contenido
2 - no se puede asumir que todavía estará allí en la siguiente solicitud
3 - no se puede confiar en su contenido
4 - no se puede asumir que el usuario nunca visitó antes si no está ahí
5 - no se puede confiar en su contenido

Si obtienes eso, acceder a cookies desde php o javascript es simplemente una cuestión de lo que es más conveniente para ti.

+3

Si cree que las cookies son seguras, usted debe buscar en este plugin para Firefox -> https://addons.mozilla.org/en-US/firefox/addon/573 – MiffTheFox

7

No existe la cookie 'php' o la cookie 'JavaScript'.

Una cookie es una cookie es una cookie. Lo importante es lo que almacenas en él. Entonces, ¿qué estás almacenando en ellos?

+4

No hay cookies PHP o JavaScript, pero hay cookies HTTPOnly, que solo PHP puede configurar. –

+0

sedoso soy consciente del hecho pero yo quería saber acerca de los pros y los contras WRT la aplicación de las cookies en PHP o JS – mkamthan

+0

No importa, (sólo en lo que respecta a HttpOnly como se discute). Como dije, es importante lo que estás poniendo en él. Donde lo colocaste no importa. –

0

Son exactamente lo mismo, cuando se llama a setcookie() en PHP, todo lo que hace es enviar un encabezado HTTP que es interpretado por el navegador para almacenar una cookie para una duración determinada. Lo mismo ocurre con Javascript.

5

Bueno, yo no soy un gurú de la seguridad, pero una cosa es segura. Si los configura en JavaScript, dado que es front-end, el usuario verá cómo lee y escribe sus cookies y qué pone en ellas, lo que significa que tiene una ventaja. Al hacer esto en PHP, no le mostrará cómo está leyendo y escribiéndolo y qué está haciendo con ellos.

+2

El usuario final puede ver la cookie de cualquier manera – Lepidosteus

+0

Es * se * Todavía mostrar el valor, y un usuario inteligente, probablemente, puede calcular lo que es de todos modos, a menos que sea encriptado (no, base64 no cuenta), o algo ininteligible como un hash/sessionid. –

+0

Sí, se lo puede ver, pero si está encriptado o algo así, no va a ver cómo está construido. – treznik

6

No estoy seguro de si en el momento que hizo la pregunta que eran conscientes del hecho de que some browsers apoyar una bandera adicional HTTPOnly para las cookies. En ese sentido, las cookies enviadas con PHP que contienen el indicador HTTPOnly no se pueden modificar mediante el código JavaScript del lado del cliente en los navegadores compatibles con la función, lo que refuerza la seguridad de alguna manera.

Por lo tanto, los usuarios que tengan un navegador que admita cookies HTTPOnly estarán mejor protegidos contra los ataques XSS.

0

Si habla de las cookies de sesión, se pueden considerar seguras en comparación con las normales.