2009-08-15 18 views
17

Per quanto riguarda la sicurezza e la praticità, quali sono i cookie migliori di PHP o di Javascript?Cookies - PHP vs Javascript

+14

Non sapevo che i cookie HTTP fossero di diversi gusti. –

+3

@Greg, in realtà lo fa :). C'è una specifica Cookie2. Tuttavia, è supportato solo da Opera. –

+2

I cookie e la sicurezza non vanno mai nella stessa frase. –

risposta

33

Sono gli stessi, in entrambi i casi il cookie viene inviato al browser, memorizzato lì e il browser lo invia ogni richiesta fino a quando non scade o viene cancellato.

Per questo motivo, non utilizzare mai i cookie per la sicurezza come implica la tua domanda né per tutti i dati che ritieni importanti non manterrà inalterati all'utente finale.

Ci sono cinque cose da ricordare sempre quando si utilizza dei cookie:
1 - non ci si può fidare del suo contenuto
2 - non si può assumere che sarà ancora lì per la richiesta successiva
3 - non ci si può fidare del suo contenuto
4 - non si può assumere che l'utente non ha mai visitato prima, se non è lì
5 - non ci si può fidare del suo contenuto

Se si ottiene che, l'accesso ai cookie da php o javascript è semplicemente una questione di ciò che è più conveniente per voi.

+3

Se pensi che i cookie siano sicuri, dovresti dare un'occhiata a questo plugin per Firefox -> https://addons.mozilla.org/en-US/firefox/addon/573 – MiffTheFox

7

Non esiste un cookie "php" o "JavaScript".

Un cookie è un cookie è un cookie. La cosa importante è ciò che immagazzini in esso. Allora, cosa stai immagazzinando in loro?

+4

Non ci sono cookie PHP o JavaScript, ma ci sono cookie HTTPOnly, che solo PHP può impostare. –

+0

Silky Sono consapevole del fatto, ma volevo sapere dei pro e dei contro l'implementazione dei cookie in PHP o JS – mkamthan

+0

Non importa, (solo per quanto riguarda HttpOnly come discusso). Come ho detto, è importante cosa ci stai mettendo dentro. Dove lo si imposta non ha importanza. –

0

Sono esattamente gli stessi, quando si chiama setcookie() su PHP, tutto ciò che viene inviato è un'intestazione HTTP che viene interpretata dal browser per memorizzare un cookie per una determinata durata. Lo stesso succede con Javascript.

5

Beh, io non sono un guru della sicurezza, ma una cosa è certa. Se li imposti in JavaScript, dato che è front-end, l'utente vedrà come leggi e scrivi i tuoi cookie e cosa li metti dentro, il che significa che ha un vantaggio. Mentre lo fai in PHP, non gli mostrerai come stai leggendo e scrivendoli e cosa stai facendo con loro.

+2

L'utente finale può vedere il cookie in entrambi i modi – Lepidosteus

+0

Esso * mostrerà * ancora il valore e un utente intelligente può probabilmente capire cosa è in ogni caso, a meno che non sia crittografato (no, base64 non conta) o qualcosa di incomprensibile come un hash/sessionid. –

+0

Sì, può vederlo, ma se è crittografato o qualcosa del genere, non vedrà come è costruito. – treznik

6

non sono sicuro se al momento lei ha chiesto la domanda che erano a conoscenza del fatto che some browsers supporta un ulteriore HTTPOnly bandiera per i biscotti. A tale riguardo, i cookie inviati con PHP, che contengono il flag HTTPOnly non possono essere modificati dal codice JavaScript lato client nei browser che supportano la funzionalità, il che rafforza in qualche modo la sicurezza.

Quindi, gli utenti che dispongono di un browser che supporta i cookie HTTPOnly, saranno protetti meglio dagli attacchi XSS.

0

Se si parla di cookie di sessione, possono essere considerati sicuri rispetto a quelli normali.