cs_Dean
Messages postés500Date d'inscriptionmardi 16 avril 2002StatutMembreDernière intervention 2 août 2004
-
13 juil. 2002 à 23:01
cymoud
Messages postés21Date d'inscriptionmardi 18 février 2003StatutMembreDernière intervention15 septembre 2007
-
7 août 2008 à 23:10
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cymoud
Messages postés21Date d'inscriptionmardi 18 février 2003StatutMembreDernière intervention15 septembre 2007 7 août 2008 à 23:10
Hey les gens, réagissez, il y a au moins 2 failles de sécurité là déjà ! En tout cas je n'en ai vue que 2 pour l'instant.
La première concerne l'injection SQL, heureusement que frakosun a proposé une solution mais manque de pot, Dean n'a pas jugé utile de le corriger dans la source, donc plein de gens continueront à trouer leur sécurité en copiant cette source.
La deuxième est que même si le script vérifie bien la cohérence de l'adresse IP donnée en HTTP_X_FORWARDED_FOR ou en HTTP_CLIENT_IP (ce qui n'est déjà pas le cas), je peux quand même générer un petit script qui enverra une fausse IP aléatoire dans l'en-tête de la requête HTTP et donc faire exploser le compteur de chez moi même sans aucun proxy.
cs_Arnauti
Messages postés392Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention26 septembre 2009 5 juil. 2008 à 11:09
Tres joli script :)
frakosun
Messages postés10Date d'inscriptionlundi 7 août 2006StatutMembreDernière intervention11 janvier 2008 21 mars 2008 à 00:03
En fait il existe plusieurs solutions plus ou moins 'correctes' on va dire.
Par ex. la méthode de kankrelune donné plus haut fonctionne, mais pourquoi faire compliqué (htmlspecialchars + addslashes) alors que mysq_real_escape_string est une fonction sql donc 100% adaptée?
Il faut l'utiliser avant toute interaction avec la bdd (select, update & co.) sans exception ;)
Par contre si les "magic quotes" sont activés sur le serveur cela va échapper 2 fois certains caractères comme les ' ou " donc c'est pas top. Il existe une fonction qui s'occupe d'y remédier, qui va vérifier si les magic quotes sont sur ON ou OFF et qui va agir en conséquence (par contre désolé je ne l'utilise pas donc je ne l'ai pas...).
Pis pour peaufiner avec une bonne dose de parano pour l'affichage un 'int($current_num_clients)' ne peut pas faire de mal :P
cs_Dean
Messages postés500Date d'inscriptionmardi 16 avril 2002StatutMembreDernière intervention 2 août 2004 20 mars 2008 à 18:36
>> pour la faille un 'mysql_real_escape_string($_SERVER['REQUEST_URI'])' devrait suffire, pas besoin d'en mettre 12 tonne ;)
Merci, je me demandais justement si l'on pouvait "préparer" les requêtes SQL avec PHP (de façon sécurisée), cela répond à ma question.
frakosun
Messages postés10Date d'inscriptionlundi 7 août 2006StatutMembreDernière intervention11 janvier 2008 20 mars 2008 à 10:43
pour la faille un 'mysql_real_escape_string($_SERVER['REQUEST_URI'])' devrait suffire, pas besoin d'en mettre 12 tonne ;)
peoplehard
Messages postés26Date d'inscriptionsamedi 26 avril 2003StatutMembreDernière intervention26 novembre 2008 20 janv. 2007 à 18:46
Merci pour ce super script :)
Pour la structures mysql:
CREATE TABLE `clients` (
`client_id` varchar(64) NOT NULL default '',
`client_location` varchar(128) NOT NULL default '',
`client_time_request` int(11) NOT NULL default '0',
PRIMARY KEY (`client_id`,`client_location`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 24 déc. 2005 à 04:51
J'adore les mecs qui viennent se dandiner en disant "bonjour la faille" mais qui ne sont pas capable de dire comment la résoudre pour éviter aux utilisateurs du script en question d'être touchés... dans d'autre cas on appel ça "non assistance à personne en danger"... pffffffffff... lamentable... .. .
Bon pour complèter il faudrait parser le $REQUEST_URI car sinon effectivement vous vous exposez à des gros soucis...
chapodepay
Messages postés7Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention18 avril 2007 22 nov. 2005 à 15:39
bonjour la faille -_-
celui ki met se script sur son site s'expose a de gros souci...
chapodepay
www.horslimite.net
hardman566
Messages postés1Date d'inscriptiondimanche 22 août 2004StatutMembreDernière intervention 1 septembre 2004 1 sept. 2004 à 13:45
Bravo pour ton script!
Tres clair! Simple d'installation! Rapide!...parfait à mon goût et pour mes besoins.
Merci.
Yoteco
Messages postés111Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention 5 novembre 2008 9 juin 2004 à 08:04
Salut,
Je suis sous un proxy et il y a environ 20 pc derrière... mais ils ont tous la même ip quand il se connecte! C'est embêtant :-( tu ne saurais pas pk?
cs_Dean
Messages postés500Date d'inscriptionmardi 16 avril 2002StatutMembreDernière intervention 2 août 2004 15 août 2003 à 00:38
Merci pour le spam (11 nouveaux messages...) ;-).
Sinon pour ton problème HenvimaL, je tiens à préciser que tu n'as pas besoin de créer la table SQL manuellement, puisque cela est géré par le script. Donc vire ta table et réessaie :-).
HenvimaL
Messages postés28Date d'inscriptiondimanche 18 mai 2003StatutMembreDernière intervention 7 juin 2010 14 août 2003 à 23:51
bon b1 en tou cas GG la carrotte tu as reussi a faire croire ke tu etais un dieu du php alors ke..; GG la carote, tu dois me comprend !
bricethenetman
Messages postés72Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention 3 mai 2008 14 août 2003 à 23:37
Vérifie si t'as pas oublié un ";" quelquepart. Sinon tu peux m'envoyer t'as source par email je peux y jeter un coup d'oeil pour voir si je peux t'aider.
HenvimaL
Messages postés28Date d'inscriptiondimanche 18 mai 2003StatutMembreDernière intervention 7 juin 2010 14 août 2003 à 23:00
comme d habitude je suis un chanceu C pil la mauvais ligne !
HenvimaL
Messages postés28Date d'inscriptiondimanche 18 mai 2003StatutMembreDernière intervention 7 juin 2010 14 août 2003 à 22:58
ahah voila j ai compris le truc, mais encore un probleme j ai entré le code en php, config etc... et en haut de ma page il ecrit
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in index.php on line 49
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in index.php on line 52
voir http://henvimal.a.free.Fr
bricethenetman
Messages postés72Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention 3 mai 2008 14 août 2003 à 22:55
ben je c pas g pas tester ce script en plus moi aussi je suis newbi(g un mois et demi de php) mais je pense ke si t'as tout bien suivi il ne te reste plus rien a faire sauf si le script contient des erreurs
HenvimaL
Messages postés28Date d'inscriptiondimanche 18 mai 2003StatutMembreDernière intervention 7 juin 2010 14 août 2003 à 22:48
voila donc maintenant j ai creer ma db et mes 3 champs, mais que faire avec ?
HenvimaL
Messages postés28Date d'inscriptiondimanche 18 mai 2003StatutMembreDernière intervention 7 juin 2010 14 août 2003 à 21:13
oué ok merci :D
bricethenetman
Messages postés72Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention 3 mai 2008 14 août 2003 à 18:15
sinon tu peut toujours aller sur nexen.net ou sur le site officiel de php pour completéer tes connaissance en programmation web.
bricethenetman
Messages postés72Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention 3 mai 2008 14 août 2003 à 18:14
mysql_select_db() est une fonction php qui va sélectionner une base de donnée afin que tu puisse la manipuler(si tu ne défini pas de bdd php ne saura pas executer tes requetes). mysql_connect sert à te connecter à la bdd choisi si les parametre host, user et password sont bons. Mais le mieux pour toi ca serais d'aller sur des cours de php en ligne comme phpdébutant
HenvimaL
Messages postés28Date d'inscriptiondimanche 18 mai 2003StatutMembreDernière intervention 7 juin 2010 14 août 2003 à 17:16
oui oui j ai activé la base mysql chez free je suis dessus mais je comprens rien, donc dans mon index.php je mes <?php include('live_counter.php") ?> ensuite j mes le php etc... mais ca sert a quoi
mysql_select_db("database", mysql_connect("localhost", "root", ""));
et surtout j le mes ou ? uHu :p
cs_Dean
Messages postés500Date d'inscriptionmardi 16 avril 2002StatutMembreDernière intervention 2 août 2004 14 août 2003 à 17:05
Bonjour,
Tu peux inclure ce code dans une page "live_counter.php" que tu inclus dans ton index via include() ou require().
Ensuite, tu n'as plus qu'à récupérer les variables ($num_clients...) dont tu veux te servir.
Pour la base MySQL, si tu es chez Free il faut d'abord l'activer (voir www.free.fr).
Après il te suffit de paramétrer la ligne :
Avec le serveur ("sql.free.fr"), pour le nom d'utilisateur et le mot de passe ce sont les mêmes que pour l'accès FTP.
HenvimaL
Messages postés28Date d'inscriptiondimanche 18 mai 2003StatutMembreDernière intervention 7 juin 2010 14 août 2003 à 16:37
moi je suis un debutant dans le php et je ne le comprend pas tres bien, seule probleme (ne vous moquez pas), j aimerai savoir ou le mettre cette chose, dans la index.php, marche pas :S, et mysql oula, j suis chez free si on peu me donner un petit conseil
bricethenetman
Messages postés72Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention 3 mai 2008 20 juil. 2003 à 14:05
Je suis un newbie mais je dois dire ke ce code me parait génial. C'est des script kom ca ki donne envie de progresser. merci. Ce script mérite au moins 10/10.
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 29 juin 2003 à 13:43
Très bien !
i0Lo
Messages postés62Date d'inscriptionjeudi 7 novembre 2002StatutMembreDernière intervention 5 mai 2004 12 mai 2003 à 11:38
mmmmm trés sympa ca m'a évité de me prendre la tête dans des recherches pas possibles lol
Trés bonne source allez zou un 10/10
cs_Dean
Messages postés500Date d'inscriptionmardi 16 avril 2002StatutMembreDernière intervention 2 août 2004 13 avril 2003 à 01:07
Eh bien c'est sympa tous ces messages ! Merci à vous aussi !
relizwork
Messages postés3Date d'inscriptionsamedi 18 janvier 2003StatutMembreDernière intervention21 avril 2003 12 avril 2003 à 15:53
merci beaucoup ton script est vraiment super , gg ++ all
lumesh
Messages postés564Date d'inscriptionjeudi 21 février 2002StatutMembreDernière intervention 7 novembre 2008 12 avril 2003 à 12:54
en fait ce que je trouve exelent c que par rapport au autres scripts du genre, bah le tiens si tu vire la creation auto de la table ainsi que tous les commentaires il ne reste que 7 lignes !!!
le pire c'est que ca marche aussi bien que les autres scripts (enfin ceux qui marchent lol).
En gros c'est parfait pour implementer dans son site woueb !
cs_Kikounet
Messages postés2Date d'inscriptionjeudi 7 mars 2002StatutMembreDernière intervention16 juin 2003 7 avril 2003 à 19:27
Clair... Exelent ton script =) merci bcp pour ca... Ca va pas mal m'aider lol =)
grdscarabee
Messages postés134Date d'inscriptionmercredi 24 juillet 2002StatutMembreDernière intervention 7 août 2005 25 juil. 2002 à 00:01
Bravo, excellent travail. te laisse pas bouffer, ya des trousduc partout. J'adorerais pouvoir pondre un script come ça. ;)
cs_Dean
Messages postés500Date d'inscriptionmardi 16 avril 2002StatutMembreDernière intervention 2 août 2004 22 juil. 2002 à 12:28
OK, je fais les modifs tout de suite.
g0belin
Messages postés155Date d'inscriptionjeudi 6 décembre 2001StatutMembreDernière intervention19 avril 2010 22 juil. 2002 à 07:37
juste tu devrai mettre la structure de la base SQL
g0belin
Messages postés155Date d'inscriptionjeudi 6 décembre 2001StatutMembreDernière intervention19 avril 2010 22 juil. 2002 à 07:28
t'inkiete pas c'est surement des jaloux
cs_Dean
Messages postés500Date d'inscriptionmardi 16 avril 2002StatutMembreDernière intervention 2 août 2004 13 juil. 2002 à 23:01
1/10 ?
Merci beaucoup, je vois qu'il en a qui apprécient !
Ce serait encore mieux d'avoir une justification écrite...
7 août 2008 à 23:10
La première concerne l'injection SQL, heureusement que frakosun a proposé une solution mais manque de pot, Dean n'a pas jugé utile de le corriger dans la source, donc plein de gens continueront à trouer leur sécurité en copiant cette source.
La deuxième est que même si le script vérifie bien la cohérence de l'adresse IP donnée en HTTP_X_FORWARDED_FOR ou en HTTP_CLIENT_IP (ce qui n'est déjà pas le cas), je peux quand même générer un petit script qui enverra une fausse IP aléatoire dans l'en-tête de la requête HTTP et donc faire exploser le compteur de chez moi même sans aucun proxy.
5 juil. 2008 à 11:09
21 mars 2008 à 00:03
Par ex. la méthode de kankrelune donné plus haut fonctionne, mais pourquoi faire compliqué (htmlspecialchars + addslashes) alors que mysq_real_escape_string est une fonction sql donc 100% adaptée?
Il faut l'utiliser avant toute interaction avec la bdd (select, update & co.) sans exception ;)
Par contre si les "magic quotes" sont activés sur le serveur cela va échapper 2 fois certains caractères comme les ' ou " donc c'est pas top. Il existe une fonction qui s'occupe d'y remédier, qui va vérifier si les magic quotes sont sur ON ou OFF et qui va agir en conséquence (par contre désolé je ne l'utilise pas donc je ne l'ai pas...).
Pis pour peaufiner avec une bonne dose de parano pour l'affichage un 'int($current_num_clients)' ne peut pas faire de mal :P
20 mars 2008 à 18:36
Merci, je me demandais justement si l'on pouvait "préparer" les requêtes SQL avec PHP (de façon sécurisée), cela répond à ma question.
20 mars 2008 à 10:43
20 janv. 2007 à 18:46
Pour la structures mysql:
CREATE TABLE `clients` (
`client_id` varchar(64) NOT NULL default '',
`client_location` varchar(128) NOT NULL default '',
`client_time_request` int(11) NOT NULL default '0',
PRIMARY KEY (`client_id`,`client_location`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
24 déc. 2005 à 04:51
Bon pour complèter il faudrait parser le $REQUEST_URI car sinon effectivement vous vous exposez à des gros soucis...
trim(htmlspecialchars(addslashes($_SERVER['REQUEST_URI'])));
devrait suffire... .. .
@ tchaOo°
22 nov. 2005 à 15:39
celui ki met se script sur son site s'expose a de gros souci...
chapodepay
www.horslimite.net
1 sept. 2004 à 13:45
Tres clair! Simple d'installation! Rapide!...parfait à mon goût et pour mes besoins.
Merci.
9 juin 2004 à 08:04
Je suis sous un proxy et il y a environ 20 pc derrière... mais ils ont tous la même ip quand il se connecte! C'est embêtant :-( tu ne saurais pas pk?
15 août 2003 à 00:38
Sinon pour ton problème HenvimaL, je tiens à préciser que tu n'as pas besoin de créer la table SQL manuellement, puisque cela est géré par le script. Donc vire ta table et réessaie :-).
14 août 2003 à 23:51
14 août 2003 à 23:37
14 août 2003 à 23:00
14 août 2003 à 22:58
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in index.php on line 49
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in index.php on line 52
voir http://henvimal.a.free.Fr
14 août 2003 à 22:55
14 août 2003 à 22:48
14 août 2003 à 21:13
14 août 2003 à 18:15
14 août 2003 à 18:14
14 août 2003 à 17:16
mysql_select_db("database", mysql_connect("localhost", "root", ""));
et surtout j le mes ou ? uHu :p
14 août 2003 à 17:05
Tu peux inclure ce code dans une page "live_counter.php" que tu inclus dans ton index via include() ou require().
Ensuite, tu n'as plus qu'à récupérer les variables ($num_clients...) dont tu veux te servir.
Pour la base MySQL, si tu es chez Free il faut d'abord l'activer (voir www.free.fr).
Après il te suffit de paramétrer la ligne :
mysql_select_db("database", mysql_connect("localhost", "root", ""));
Avec le serveur ("sql.free.fr"), pour le nom d'utilisateur et le mot de passe ce sont les mêmes que pour l'accès FTP.
14 août 2003 à 16:37
20 juil. 2003 à 14:05
29 juin 2003 à 13:43
12 mai 2003 à 11:38
Trés bonne source allez zou un 10/10
13 avril 2003 à 01:07
12 avril 2003 à 15:53
12 avril 2003 à 12:54
le pire c'est que ca marche aussi bien que les autres scripts (enfin ceux qui marchent lol).
En gros c'est parfait pour implementer dans son site woueb !
7 avril 2003 à 19:27
25 juil. 2002 à 00:01
22 juil. 2002 à 12:28
22 juil. 2002 à 07:37
22 juil. 2002 à 07:28
13 juil. 2002 à 23:01
Merci beaucoup, je vois qu'il en a qui apprécient !
Ce serait encore mieux d'avoir une justification écrite...