Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > GD
GD Forum d'entraide pour l'extension GD permettant de manipuler des images en PHP. Avant de poster -> tutoriels GD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/02/2005, 19h05   #1
Membre du Club
 
Inscription : mars 2004
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 57
Points : 43
Points : 43
Par défaut Code graphique anti robot

Bonjour tout le monde,

J'ai écrit un script (test.php) pour générer un code aléatoire qui s'affiche dans une image afin d'empêcher des robots de s'inscrire dans un espace membres.

Dans un premier temps je génère un code aléatoire, puis je le crypte avec la fonction mycrypt.

Après cela j'affiche l'image générée par un autre script (image.php) en lui passant en paramètres le code crypté. Ce script va décrypter le code transmis en paramètres en utilisant la clé qu'il a en commun avec le premier script.

Cela marche, mais de temps en temps (1 fois sur dix ou 1 fois sur vingt) au lieu d'avoir mon code généré j'ai sur mon image une chaîne de caractères qui n'a rien à voir avec mon code généré.

Je ne comprends pas d'où vient cette erreur.

Pourriez vous m'aider?

le lien vers le script en ligne :

http://brumespourpres.online.fr/test.php

Le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
test.php
<?php 
	srand((float)microtime()*1000000);
 
	$longueurTexte = 12;
	$caracteres = array("1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "j", "k", "m", "n", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F","G", "H", "J", "K", "M", "N", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
	$compteur = 1;
	$texte = "";
 
	while ($compteur <= $longueurTexte) {
		$texte = $texte . $caracteres[rand(0,count($caracteres)-1)];
		$compteur = $compteur+1;
	}
 
	$iv = mcrypt_create_iv(mcrypt_get_iv_size (MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
	$clee = "secret"; 
	$texteCrypte = mcrypt_encrypt (MCRYPT_RIJNDAEL_256, $clee, $texte, MCRYPT_MODE_ECB, $iv);
 
	echo "<html><header></header><body>";
	echo $texte;
	echo "<br>";
	echo "<img src=./image.php?texteImage=" . addslashes(urlencode(serialize($texteCrypte))) . "&iv=" . addslashes(urlencode(serialize($iv))) . ">";
	echo "<br>";
	echo "</body></html>";
?>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
image.php
<?php 
	$clee = "secret"; 
	$texteCrypte = unserialize(urldecode(stripslashes($_GET['texteImage'])));
	$iv = unserialize(urldecode(stripslashes($_GET['iv'])));
 
	$texteDecrypte = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $clee, $texteCrypte, MCRYPT_MODE_ECB, $iv);
	$texteDecrypte = trim($texteDecrypte);
 
	$longueurTexte = strlen($texteDecrypte);
	$tailleTexte = 30;
	$largeurImage = $longueurTexte * $tailleTexte + 100;
	$hauteurImage = $tailleTexte  + 40;
 
	$policeTexteImage = "./arial.ttf";
 
	$image = ImageCreateTrueColor($largeurImage, $hauteurImage);
	$couleur1 = ImageColorAllocate($image, 255, 255, 0);
	$couleur2 = ImageColorAllocate($image, 255, 0, 0);
 
	ImageTTFText($image, $tailleTexte, 0, ($largeurImage - $tailleTexte * $longueurTexte) / 2 , ($hauteurImage - $tailleTexte) / 2 + $tailleTexte, $couleur2, $policeTexteImage, $texteDecrypte);
 
	Header("Content-type: image/png");
 
	ImagePNG($image);
	ImageDestroy($image);
?>
miel_pops est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2005, 13h41   #2
Membre du Club
 
Inscription : mars 2004
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 57
Points : 43
Points : 43
Je pense qu'il y a de temps en temps une erreur au niveau du décryptage (le texte crypté est mal passé en paramètres par exemple), je ne sais pas si quelqu'un si connaît dans se domaine?
miel_pops est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2005, 18h07   #3
Expert Confirmé Sénior
 
Homme Mathias Gaunard
Ingénieur développement logiciels
Inscription : décembre 2003
Messages : 3 543
Détails du profil
Informations personnelles :
Nom : Homme Mathias Gaunard
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : décembre 2003
Messages : 3 543
Points : 4 408
Points : 4 408
Ça sent le problème de slashes...
Vire les addslashes et stripslashes.
Vire les serialize et unserialize.

Dans image.php, détecte si magic_quotes_gpc est activé et si c'est le cas effectue un stripslashes récursivement sur $_GET, $_POST, $_COOKIE et $_REQUEST (il faut faire ça dans tous les scripts, à cause de cette directive anti-injection SQL pour newbie)
loufoque est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2005, 18h23   #4
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
Salut!

J'ai intégré cette fonction dans l'espace membre que nous avons développé :
http://www.developpez.net/forums/viewtopic.php?t=220791

Voici ce que ça donne : http://espm.gotdns.org/inscript.php

Voici les sources : http://sub0.developpez.com/php/espmem_v2.zip
Dans le fichier function.php, les fonctions CodeImage & CodeImageSupr.
Dans le fichier unitform.php, tu trouveras le code d'affichage du formulaire (la fonction View_Form_Inscription).
Dans le fichier config.php, les options du programme...

à+
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2005, 13h41   #5
Membre du Club
 
Inscription : mars 2004
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 57
Points : 43
Points : 43
Merci à tous les deux pour vos réponses.

En partant sur ton idée loufoque j'ai trouvé la solution. Apparement la fonction base64_encode() est plus adpatée à ce que je voulais faire.
Maintenant ça marche nickel.

J'ai ajouté deux traits aléatoires et j'ai corrigé quelques erreurs en regardant le code de sub0.

Je donne le code corrigé pour ceux qui seraient interessés :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
test.php
<?php 
	srand((float)microtime()*1000000);
 
	$longueurTexte = 12;
	$caracteres = array("1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "j", "k", "m", "n", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F","G", "H", "J", "K", "M", "N", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
	$compteur = 1;
	$texte = "";
 
	while ($compteur <= $longueurTexte) {
		$texte = $texte . $caracteres[rand(0,count($caracteres)-1)];
		$compteur = $compteur+1;
	}
 
	$iv = mcrypt_create_iv(mcrypt_get_iv_size (MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
	$clee = "secret"; 
	$texteCrypte = mcrypt_encrypt (MCRYPT_RIJNDAEL_256, $clee, $texte, MCRYPT_MODE_ECB, $iv);
 
	echo "<html><header></header><body>";
	echo $texte;
	echo "<br>";
	echo "<img src=./image.php?texteImage=" . base64_encode($texteCrypte) . "&iv=" . base64_encode($iv) . ">";
	echo "<br>";
	echo "</body></html>";
?>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
image.php
<?php 
	$clee = "secret";
 
	$texteCrypte = base64_decode(stripslashes($_GET['texteImage']));
	$iv = base64_decode(stripslashes($_GET['iv']));
 
	$texteDecrypte = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $clee, $texteCrypte, MCRYPT_MODE_ECB, $iv);
	$texteDecrypte = trim($texteDecrypte);
 
	$longueurTexte = strlen($texteDecrypte);
	$tailleTexte = 15;
	$largeurImage = $longueurTexte * $tailleTexte;
	$hauteurImage = $tailleTexte + 10;
 
	$policeTexteImage = "./arial.ttf";
 
	$image = ImageCreateTrueColor($largeurImage, $hauteurImage);
	$couleur1 = ImageColorAllocate($image, 255, 255, 255);
	$couleur2 = ImageColorAllocate($image, 0, 0, 0);
 
	imagefilledrectangle($image,0,0,$largeurImage, $hauteurImage, $couleur1);
 
	ImageTTFText($image, $tailleTexte, 0, ($largeurImage - $tailleTexte * $longueurTexte) / 2 , ($hauteurImage - $tailleTexte) / 2 + $tailleTexte, $couleur2, $policeTexteImage, $texteDecrypte);
 
	srand((float)microtime()*1000000);
	imageline($image, rand($largeurImage/10, $largeurImage/8), rand($hauteurImage/10, ($hauteurImage-$hauteurImage/10)), rand(($largeurImage-$largeurImage/8), ($largeurimage-$largeurImage/10)), rand($hauteurImage/10, ($hauteurImage-$hauteurImage/10)), $couleur2);
	imageline($image, rand($largeurImage/10, $largeurImage/8), rand($hauteurImage/10, ($hauteurImage-$hauteurImage/10)), rand(($largeurImage-$largeurImage/8), ($largeurimage-$largeurImage/10)), rand($hauteurImage/10, ($hauteurImage-$hauteurImage/10)), $couleur2);
 
	Header("Content-type: image/jpeg");
 
	ImageJPEG($image, "", 0);
	ImageDestroy($image);
?>
miel_pops est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2005, 15h35   #6
Membre du Club
 
Inscription : mars 2004
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 57
Points : 43
Points : 43
Après réflexion le code ne me parait pas très judicieux.
N'importe qui peut envoyer du texte crypté par l'url et recopier ce qu'affiche l'image générée... et à partir de là en déduire la clé.

Je crois que le seul moyen sûr d'envoyer ce code au script générateur d’image va être d'utiliser les sessions. Il va donc falloir que je crée une image, moi qui ne voulais pas me prendre la tête sur les accès concurrents au fichier image c'est raté.
miel_pops est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2005, 16h04   #7
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
Effectivement, soit tu enregistres un code dans une session, soit tu utilises le code pour créer le nom du fichier image en admettant que tu crées un fichier et de cette manière, mémoriser le code à entrer... D'autres solutions peuvent-être envisagées, mais l'utilisation de session reste le plus efficace je pense, à+
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2005, 17h40   #8
Membre du Club
 
Inscription : mars 2004
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 57
Points : 43
Points : 43
Salut sub0,

J'ai regardé ton code et à un moment il y a quelque chose que je trouve bizarre.
Tu transmets (si j'ai bien compris) le hash de ton code image par un "input hidden".

Seulement ça c'est du HTML, et si j'ai juste normalement c'est le navigateur du client qui va envoyer cette valeur de façon "cachée" aux yeux de l'utilisateur.
Mais là quelqu'un de malintentionné ne pourrait il pas mettre son propre hashcode et ainsi passer outre la copie du code graphique?
miel_pops est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2005, 18h43   #9
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
Oui, la protection contre les robots a une faille de sécurité !
D'ailleurs, je vous remercie de l'avoir remarqué.

Je vois 2 ou 3 solutions pour résoudre ce petit problème :
• Soit sauvegarder le code aléatoire dans les variables globales ou de sessions.

• Soit nomer le fichier de l'image avec le hash du code. Notez qu'à chaque fois que la fonction de génération de l'image est appellée, elle supprime du dossier temporaire, toutes les images plus veilles de 10 minutes. Ainsi, il n'ya pas de risques de saturation du dossier, et il n'ya pas de problème de fichier supprimé trop tôt non plus. En utilisant le hash pour nommer le fichier jpeg, même si l'utilisateur peut récupèrer le nom de l'image en regardant les propriétés, il ne pourra pas obtenir le code en clair.

• Noter également, qu'il serait bien vu d'ajouter un grain de sel au hash. Mais l'utilisateur pourrait arriver à le calculer étant donner qu'on lui fournit le mot de passe en clair dans l'image et le mot de passe hashé dans le champs caché du formulaire... Pour avoir un grain de sel efficace, il faudrait enregistrer une variable sur le serveur afin que le grain de sel ne soit pas constant... Mais cela revient finalement au même que la 1ère solution dans ce cas.

• Ou bien un mix des 3 solutions citées...

Il conviendrait également de limiter le nombre d'inscription pour une IP, de détecter les adresses mails et les logins générés au hasard... A ce propos, l'espace membre dispose d'une fonction administrateur pour supprimer de la base de données les comptes non activés. En effet, un utilisateur dispose de 2 heures (durée réglable) pour activer son compte et ainsi valider son adresse mail.

à+
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2005, 22h18   #10
Membre du Club
 
Inscription : mars 2004
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 57
Points : 43
Points : 43
Citation:
• Soit sauvegarder le code aléatoire dans les variables globales ou de sessions.
Ca m'a l'air d'être le plus simple et le plus sûr.

Citation:
• Soit nomer le fichier de l'image avec le hash du code. Notez qu'à chaque fois que la fonction de génération de l'image est appellée, elle supprime du dossier temporaire, toutes les images plus veilles de 10 minutes. Ainsi, il n'ya pas de risques de saturation du dossier, et il n'ya pas de problème de fichier supprimé trop tôt non plus. En utilisant le hash pour nommer le fichier jpeg, même si l'utilisateur peut récupèrer le nom de l'image en regardant les propriétés, il ne pourra pas obtenir le code en clair.
C'est assez élégant mais comment comparer le code du formulaire avec le hash du fichier ensuite? Parce que dans ton repertoire tu peux avoir plusieurs fichiers image, il faudrait savoir lequel est le bon.

Citation:
• Noter également, qu'il serait bien vu d'ajouter un grain de sel au hash. Mais l'utilisateur pourrait arriver à le calculer étant donner qu'on lui fournit le mot de passe en clair dans l'image et le mot de passe hashé dans le champs caché du formulaire... Pour avoir un grain de sel efficace, il faudrait enregistrer une variable sur le serveur afin que le grain de sel ne soit pas constant... Mais cela revient finalement au même que la 1ère solution dans ce cas.
Il faudrait que le grain de sel soit aléatoire... mais bon du coup il faut transmettre le grain de sel. Il me semble beaucoup plus simple d'utiliser les sessions pour transmettre directement le code image.

Ce que je ferai :

- Generation du code aléatoire.
- Enregistrement dans la session du code.
- Lock du fichier image.
- Création du fichier image.
- Affichage du formulaire.
- Affichage de l'image.
- Delock du fichier.

Récupération des données du formulaire :

- Récupération des données de la session.
- Destruction de la session.
- Tests de validité de l'inscription
(code conforme, nombre de caractères du login, conformation mot de passe.....)
miel_pops est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2005, 22h57   #11
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
Citation:
Envoyé par miel_pops
Citation:
Envoyé par Sub0
à chaque fois que la fonction de génération de l'image est appellée, elle supprime du dossier temporaire, toutes les images plus veilles de 10 minutes
C'est assez élégant...
C'est surtout très efficace! Pas besoin de locker le fichier puisque l'image n'est valable que pour un seul affichage. La touche F5 (actualiser) va recréer une nouvelle image par exemple et en même temps, supprimer les éventuels fichiers supérieurs à 10 min. La session limite également la durée d'utilisation de cette image. Si l'utilisateur s'endort sur le formulaire d'inscription, la validation sera rejetée et il devra recommencer. 10 minutes pour remplir un petit formulaire, c'est largement suffisant.

Citation:
Envoyé par miel_pops
...mais comment comparer le code du formulaire avec le hash du fichier ensuite? Parce que dans ton repertoire tu peux avoir plusieurs fichiers image, il faudrait savoir lequel est le bon.
Il n'y aura très certainement pas beaucoups de fichiers dans ce dossier. Toutes les images plus veilles de 10 minutes sont automatiquement supprimées. Il reste dans le dossier que les nouvelles images. Il suffit de lister ce dossier et de comparer le nom de chaque fichier avec le code recherché. Il n'ya aucun risque d'avoir un doublon (pratiquement improbable). Néanmoins, reste la possibilité d'utiliser la date de création de cette image pour identifier le bon fichier. Cette date peut très bien être ajoutée dans un champs caché du formulaire sans que cela cause de problème de sécurité... On peut également ajouter d'autres informations dans le nom du fichier (IP par exemple), etc...

Perso, je ne miserais pas tout sur les variables de sessions. Selon moi, la méthode avec le nom du fichier me semble être la meilleure solution, à+
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2005, 23h12   #12
Membre du Club
 
Inscription : mars 2004
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 57
Points : 43
Points : 43
L'avantage que je trouve à ta méthode c'est effectivement d'éviter le lock, donc si 10 personnes viennent s'inscrire en même temps elles peuvent être satisfaites rapidement ce qui est un bon point.
Mais au niveau de la sécurité je me demande s'il n'y a pas encore un problème.
Imagine que je vienne m'inscrire sur ta page d'inscription, je relève le code image et je note la date que tu passes dans ton hidden.
Ensuite avec un robot je peux redonner cette même date et vu que j'ai relevé manuellement le code image je sais lequel lui est associé.
Je vais donc pouvoir m'enregistrer autant de fois que je veux pendant 10 min.

... sous réserve d'avoir bien compris tes explications.
miel_pops est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2005, 23h18   #13
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
Effectivement, tu as encore raison.

Dans ce cas, il suffit de supprimer le fichier lorsque l'inscription est acceptée.
Bien vu!
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2005, 23h22   #14
Membre du Club
 
Inscription : mars 2004
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 57
Points : 43
Points : 43
Citation:
Il conviendrait également de limiter le nombre d'inscription pour une IP
Je pense aussi que c'est quelque chose d'indispensable. Sur ma partie inscription je vérifie si l'ip du client ne s'est pas inscrite il y a moins d'un certain temps (que j'ai défini à 15min pour le moment).
Mais il faudrait que j'ajoute un compteur pour éviter des choses aberrantes comme une IP qui a 100 comptes.

Citation:
de détecter les adresses mails et les logins générés au hasard
Ca c'est assez dur à programmer, comment faire une fonction qui différencie un random d'un esprit tordu qui veut pour login Guldur4587?

Citation:
... A ce propos, l'espace membre dispose d'une fonction administrateur pour supprimer de la base de données les comptes non activés. En effet, un utilisateur dispose de 2 heures (durée réglable) pour activer son compte et ainsi valider son adresse mail.
J'ai lu un peu le thread de l'espace membre c'est assez costaud niveau vérification.
miel_pops est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2005, 23h26   #15
Membre du Club
 
Inscription : mars 2004
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 57
Points : 43
Points : 43
Citation:
Dans ce cas, il suffit de supprimer le fichier lorsque l'inscription est acceptée.
Comment n'y ai-je pas songé?
Là ça doit effectivement fonctionner nickel.
miel_pops est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2005, 23h37   #16
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
C'est vrai qu'il n'est pas évident de détecter le random... Cela risque de poser problèmes plus qu'autres choses. Mais il est tout de même possible de définir un niveau. Par exemple, le programme pourrait rechercher des syllabes (consone+voyelle). Certaines voyelles sont souvent côte à côte, exemples "eu", "ou", "ai"... Mais cela ne peux pas être utilisé pour rejeter une inscription. Il faut d'abord vérifier la syntaxe de l'émail, si le serveur existe et ensuite tester éventuellement la cohérence de l'adresse...

Citation:
Envoyé par miel_pops
c'est assez costaud niveau vérification
La conclusion de ce thread est que pour obtenir une sécurité absolue, SSL est nécessaire, à+
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2005, 10h44   #17
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
Si tu le permets (et comme le sujet semble résolu), je vais fusionner ce thread à la suite du post'it de l'espace membre. Tes remarques ont été très constructives, nous pouvons améliorer l'efficacité de l'image anti-robot. D'ailleurs, tu es le bienvenu sur ce thread si tu as d'autres suggestions sur le sujet!

http://www.developpez.net/forums/viewtopic.php?t=220791

Cordialement, Sub0
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2005, 00h03   #18
Membre du Club
 
Inscription : mars 2004
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 57
Points : 43
Points : 43
Citation:
Si tu le permets (et comme le sujet semble résolu), je vais fusionner ce thread à la suite du post'it de l'espace membre.
Oui sans problème.

J'essaye de faire un petit site en php mais étant hébergé par un hebergeur gratuit je n'ai pas le droit à grand chose donc pas de SSL à mon avis.
Chez free on n'a même pas le droit à la fonction sleep().
Mais bon c'est gratuit... et puis je vais essayer de contourner ça avec une boucle while. :p
miel_pops est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h13.


 
 
 
 
Partenaires

Hébergement Web