Cookie et limitation sur la longueur du contenu...?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Cookie et limitation sur la longueur du contenu...?

par jojolapine » 05 juin 2009, 14:51

Ben parceque Sqlite n'est utilisé nul part dans l'appli, et qu'il faudrait tout mettre en place :)
Un fichier temporaire, c'est un bête file_put_contents(serialize($donnees)) et avec un filemtime ou autre je supprime les fichiers via un cron...

par Hywan » 05 juin 2009, 14:44

Qu'est-ce que tu appelles un fichier temporaire dans ton cas ?
Pourquoi une petite base de données SQLite ne ferait pas l'affaire ?

par jojolapine » 05 juin 2009, 13:10

Le problème c'est que je doit faire avec le plus de navigateur possible (et oui même ie6 si possible!)
Donc le local storage et tout le toutim, et à fortiori, l'html5... on oubli :)

Je pense que je vais opter pour le fichier temporaire, parce que ça doit être sensiblement plus rapide pour avoir accès à des données serializées de tableaux un minimum complexes ...
Qu'en pensez vous ?

par Hywan » 05 juin 2009, 12:23

@Stopher : Si c'est une spéc' de Netscape, elle n'est pas officielle. Si la réelle spéc' a dit : faites comme vous voulez (ce que je ne sais pas), Netscape a pu écrire sa propre spéc' pour lui.

@Jojolapine : Si tu travailles avec des bons navigateurs, tu devrais regarder le local storage (un test) ou session storage (un autre test). Sinon, un cookie qui se vide régulièrement dans une base de données est une bonne solution également.

Ah, vivement l'HTML 5 :-P.

par jojolapine » 05 juin 2009, 12:15

Ben j'ai un form assez sensible qui est d'une part assez long (donc possibilité de revenir plus tard et reprendre où on en était), et qui est utilisé par des personnes "non-initiées" aux joies de l'informatique, tout à fait susceptible de fermer leur navigateur et de dire: "oups ben je peux pas reprendre où j'étais...?"
Donc il faut que je stocke pas mal d'infos que je puisse retrouver par la suite...
J'avais au départ des sessions, et j'ai donc changé pour les cookie afin de rendre persistantes les infos...
Mais vu la limitation, je pense simplement stocker l'url du fichier temp ou l'id de l'enregistrement bd...
Qu'est-ce que tu en pense...?

par stopher » 05 juin 2009, 12:14

@HyWan:

Heu de la doc php ,

http://fr2.php.net/manual/fr/function.setcookie.php

"Netscape cookie specification" pour être exacte ...

Je m'suis dit que c'etait la bonne

:D nop ?

par Hywan » 05 juin 2009, 12:10

Stopher, c'est quelle spéc' ça ? Elle sort d'où ?

Jojolapine, tu as pensé au local storage sinon (côté Javascript) ? Quelle problématique dois-tu résoudre ?

par jojolapine » 05 juin 2009, 12:06

Aouch...
2000 caractères comme valeur basse... c'est bof bof... :(
j'en suis déjà à 1000 à 1/5 du boulot :p
Va falloir que je voit ça autrement je pense...
Bon reste à savoir si je me lance dans du fichier temporaire, ou dans une bdd "temporaire"...
Merci en tout cas pour vos réponses ;)

par stopher » 05 juin 2009, 12:00

Salut ,

4kilobytes par cookie ..

D'apres la RFC

Ch.

par Hywan » 05 juin 2009, 11:58

Hey :-),

Voyons ce que nous dit les spécifications :
3.2.1 General Syntax

[…]

The HTTP protocol does not place any a priori limit on the length of
a URI. Servers MUST be able to handle the URI of any resource they
serve, and SHOULD be able to handle URIs of unbounded length if they
provide GET-based forms that could generate such URIs. A server
SHOULD return 414 (Request-URI Too Long) status if a URI is longer
than the server can handle (see section 10.4.15).

Note: Servers ought to be cautious about depending on URI lengths
above 255 bytes, because some older client or proxy
implementations might not properly support these lengths.
Donc pas de limite théorique pour les URI, donc pour GET et POST.

Quelques tests datant de 2006 disent :
  • Internet Explorer : 2 083 caractères ;
  • Firefox : 65 536 caractères ;
  • Safari : 80 000 caractères (pas testé plus loin) ;
  • Opera : 190 000 caractères (pas testé plus loin) ;
  • Apache : 4 000 caractères ;
  • Microsoft Internet Infrormation Server : 16 384 caractères (par défaut) ;
  • Perl HTTP::Daemon server : 8 000 octets
Pour Firefox, Safari et Opera, a priori, on peut aller encore plus loin. Par exemple pour Firefox, les tests ont été fait sur une version 1.5.x et on approche de la 3.5 donc on doit pouvoir faire mieux, largement mieux … Pour Opera sous Windows, c'est plus faible que sous les autres systèmes etc.

Ce qu'il faut comprendre, c'est que c'est très variable. La spécification dit : pas de limite, donc chacun fait comme il l'entend.

Et pour les cookies, bah c'est pareil je crois ;-).

Cookie et limitation sur la longueur du contenu...?

par jojolapine » 05 juin 2009, 11:09

Bonjour à tous,
Une petite question qui semblera bien simple à certain d'entre vous...
Je cherche à savoir les limitations de taille du contenu d'un cookie...
En effet, j'ai pas mal de données à insérer dans un cookie, et je croit me souvenir qu'a l'instar des données GET et POSt il y a une limitation... mais pas moyen de mettre la main dessus sur le net... :(
Merci d'avance pour vos réponses!