Je suis en train de finaliser un tuto (bis) où j'ai modifié le fichier post.php et l'application avec le système MD5 pour pouvoir envoyer les données sans qu'on puisse pirater l'envoi...
Je suis en train de finaliser un tuto (bis) où j'ai modifié le fichier post.php et l'application avec le système MD5 pour pouvoir envoyer les données sans qu'on puisse pirater l'envoi...
<div class="ubbcode-block"><div class="ubbcode-header">Originally Posted By: therickman2</div><div class="ubbcode-body">salut monos,
merci pour ce lien et ce tuto !
J'ai parcouru rapidement le tuto , je pense comprendre la partir sur MD5..........
mais alors pourquoi lit-on à la fin du tuto :
<div class="ubbcode-block"><div class="ubbcode-header">Quote:</div><div class="ubbcode-body">Attention, le script php,n'est pas du tout sécurisé, c'est un exemple !</div></div>
Cala veut-il dire, que, en plus de sécuriser l'envoi de données ( via MD5) il faut aussi "verrouiller" l'accés au fichier php lui même? ( pour qu'il ne puisse pas être modifié ? lu? )
Si oui , connais tu un tutoriel php à ce sujet ?
Merci encore pour ce tuto ,
eric </div></div>
Tu fais bien de poser la question.
En effet, le fait de poster un tutoriel et indiquer que ce dernier n'est pas sécurisé, ça peut gêner. L’idéal serait d'expliquer en quoi il n'est pas sécurisé et comment y remédier.
Pour te répondre, le script PHP interagie avec une base de données. En l’état actuel du script, y est vulnérable à une attaque qu'on appelle "injection SQL".
Cette faille de sécurité consiste à injecter une requête SQL non prévue au système.
Exemple, le script lance la requête SQL suivante :
<span style="font-weight: bold">mysql_query("INSERT INTO score VALUES('', '$nom', '$score')"</span>
2 variables sont modifiables ici ($nom et $score), donc 2 possibilités d'injection.
Prenons pour l'exemple la plus simple, la variable $nom. Si on lui donne comme valeur : <span style="font-weight: bold"><span style="color: #FF0000">Cyberclic','99999999')"#</span></span> , la requête deviendra :
<span style="font-weight: bold">mysql_query("INSERT INTO score VALUES('', 'Cyberclic','99999999')"#', '10')"
</span>
La partie après le # est ignorée vu que c'est interpreté comme du commentaire.
Donc au final rien qu'en mettant un pseudo traficoté, je peux me mettre le score que je désire.
Il y a d'autres attaques possibles, mais celle-là est la plus courante.
Pour parer ça, il suffit de virer les caractères spéciaux dans les noms des joueurs et vérifier que le score est bien un nombre.
J’espère t'avoir éclairé un peu plus.
merci cyberclic pour ce post !
Oui j'y vois plus clair ; dans ton exemple il serait possible d'éviter cela, en créant un filtre pour limiter la création de pseudos ( certains caractères interdits, par exemple , comme #)
Mais j'imagine qu'il y a d'autres failles...
La crainte que j'ai , n'étant pas du tout pro dans le domaine, est que l'on puisse facilement "récupérer" le fichier php sur mon serveur ( j'utilise 1and1 pour mon site , mais j'avoue que je ne maîtrise pas tout concernant la gestion de l'espace web )
et le modifier , par exemple !
Bon , bien sûr , mon site n'héberge pas des docs de valeur [img]<<GRAEMLIN_URL>>/wink.gif[/img]
mais pour un site éducatif il vaudrait mieux que les scores / notes affichées soient fiables...
merci encore,
eric
Ne t'en fait pas, personne ne pourra lire tes identifiants MySQL à l'intérieur de ton fichier PHP.
Ca rassure un peu !
merci encore
Je viens de poster un "bis" de la vidéo :
http://www.clickteam.fr/tutoriels-23...-en-ligne.html
Bon visionnage [img]<<GRAEMLIN_URL>>/wink.gif[/img]
superbe !
Merci beaucoup !
Je vais testrer dés ce soir
Nico, merci encore pour ces super tutos !
Tu saurais comment faire en sorte que la liste affiche les scores dans l'ordre décroissant ?