RPG Creator : créez votre MMORPG ou RPG sans aucune connaissance en programmation


Disponible le 4 Juin !




- Jouez à votre jeu sur tablettes tactiles, Smartphones et navigateurs Web
- Personnalisez vos menus
- Dessinez facilement et rapidement vos cartes
- Créez des actions pour le combat A-RPG


www.rpgcreator.net


Heures au format UTC + 1 heure [ Heure d’été ]




Publier un nouveau sujet Répondre au sujet  [ 8 messages ] 
Auteur Message
 Sujet du message: [Ajax]Problème zarb O.o"
MessagePublié: 23 Jan 2009, 22:01 
Membre royal très actif
Avatar de l’utilisateur

Inscrit le: 06 Avr 2007, 00:00
Messages: 1209
Points d'aide: 1/60

Créations :

Voir ses créations

Yop all,
J'ai un input, j'aimerais que le cadre se colore en fonction du contenue.
Si le contenue est égal au mot de passe actuel, alors on colore en vert sinon en rouge.

Tout marche bien sauf...la coloration...
En effet la condition s'effectue bien, true ou false est bon, la condition effectue la bonne branche...sauf le code qui colore...

Voici mon input (OnBlur pour pas faire de requête à chaque OnKeyDown...)

Code: Tout sélectionner
<label for="password">* Mot de passe actuel :</label><input name="password" type="password" id="password" onBlur="MdpVerifXHR(this)" /> (entre 3 et 15 caractères)


Voici ma fonction JS :

Code: Tout sélectionner
function MdpVerifXHR(mdp)
{
   var xhr = new XMLHttpRequest();
        if(window.XMLHttpRequest || window.ActiveXObject) {
                if(window.XMLHttpRequest) {
                        xhr = new XMLHttpRequest();
                }
                else {
                        try {
                                xhr = new ActiveXObject("Msxml2.XMLHTTP");
                        } catch(e) {
                                xhr = new ActiveXObject("Microsoft.XMLHTTP");
                        }
                }
        }
        xhr.onreadystatechange = function()
      {
                if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
            {
               if (xhr.responseText == "false")
               {
               alert('PAS OK');
                  mdp.style.borderStyle = 'solid';
                  mdp.style.borderColor = 'red';
               }
               else
               {
               alert('OK');
                  mdp.style.borderStyle = 'solid';
                  mdp.style.borderColor = 'green';   
               }

                }
        }
       
        var mdp = encodeURIComponent(mdp.value);
        xhr.open("GET", "VerifPass.php?mot_de_passe="+ mdp +"", true);
        xhr.send(null);
       
}


Et mon code php :

Code: Tout sélectionner
<?php
session_start(); // On démarre la session AVANT toute chose
mysql_connect("localhost", "root", "");
mysql_select_db("inscription");
if (isset($_SESSION['pseudo']))
{
   $information = mysql_query('SELECT mot_de_passe FROM inscription WHERE BINARY pseudo="'.$_SESSION['pseudo'].'" ') or die(mysql_error());
   while ($donnees = mysql_fetch_array($information) )
   {
      $mdp = $donnees['mot_de_passe'];
   }
   
   $mot_de_pass=$_GET['mot_de_passe'];
   
   if (sha1($mot_de_pass) == $mdp )
   {
      echo 'true';
   }
   else
   {
      echo 'false';
   }
   
}


OK ou PAS OK s'affiche bien, mais si je le met en dessous ça ne fonctionne plus :s
Merci d'avance.


Haut
 Profil  
 
 Sujet du message: Re: [Ajax]Problème zarb O.o"
MessagePublié: 23 Jan 2009, 22:17 
Garde
Garde
Avatar de l’utilisateur

Inscrit le: 26 Sep 2006, 00:00
Messages: 1973
Points d'aide: Illimité

Créations :

Voir ses créations

Désolé je connais pas grand chose à l'AJAX, mais comme je vois certains problemes de sécurité, je me permets de répondre Smile
-Utilise mysql_real_escape_string pour eviter les injections SQL
-Moins grave, mais vaut mieux éviter de laisser l'affichage de l'erreur SQL une fois le debug terminé, ça peut renseigner d'éventuels hackers sur ta base de données...
-Pas très grave non plus, mais il semblerait que la SHA-1 ne soit plus tres securisé, je te conseille de te créer ton propre algo, même simple il sera plus sécurisé car connu de toi seul. Et tu peux le combiner au sha1 ou md5 qui peuvent alors embrouiller le hacker.

Je dois paraitre parano mais il faut parer à toute éventualité non ? Smile
J'ai aussi une question qui n'a pas grand chose à voir avec ton projet, mais bon tant que j'y suis...où as-tu appris le JS/Ajax ? Au pire réponds moi par MP ;p

_________________
Image
Image


Haut
 Profil  
 
 Sujet du message: Re: [Ajax]Problème zarb O.o"
MessagePublié: 23 Jan 2009, 22:38 
Membre royal très actif
Avatar de l’utilisateur

Inscrit le: 06 Avr 2007, 00:00
Messages: 1209
Points d'aide: 1/60

Créations :

Voir ses créations

Ok merci =p
Dans ce script rien n'entre dans la bdd, donc mysql_real_escape_string est inutile je pense.

En fait je sorts simplement mot_de_passe de la bdd et je compare avec la donnée passée en get.

Pour supprimer les erreurs sql je ferais ça plus tard ^^
Et encore, le @ devant la requête pompe pas mal de ressource à ce que j'ai entendu dire.
Je perfectionnerais mon code de façon à qu'il n'y ait pas d'erreur ^^

Et j'ai déjà pensé à créer une méthode de hash, c'est un de mes futur projet, mais c'est très complexe.
En attendant sha1 est plus sécurisé que md5 alors je reste sous sha1, mais lorsque j'aurais fini mon jeu et mon hash, je recrypterais tous.

Pour la question, j'ai trouvé des scripts sur le web et je les aient disséqués, j'ai aussi fais un tour sur le sdz, mais faut dire que côté JS tout requiert un minimum de compréhension et c'est très mal expliqué (seulement sur JS et AJAX).

Je penses que je vais aussi me lancer dans un tutoriel pour JavaScript et Ajax.
Si tu veux je te fais un cours par mp avec des tps, tu devrais comprendre assez vite =p

EDIT : Corrigé, j'avais nommé une variable comme un objet déjà instancié...

Code: Tout sélectionner
function MdpVerifXHR(mdp)
{
   var xhr = new XMLHttpRequest();
        if(window.XMLHttpRequest || window.ActiveXObject) {
                if(window.XMLHttpRequest) {
                        xhr = new XMLHttpRequest();
                }
                else {
                        try {
                                xhr = new ActiveXObject("Msxml2.XMLHTTP");
                        } catch(e) {
                                xhr = new ActiveXObject("Microsoft.XMLHTTP");
                        }
                }
        }
        xhr.onreadystatechange = function()
      {
                if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
            {
               if (xhr.responseText == "false")
               {
                  mdp.style.borderStyle = 'solid';
                  mdp.style.borderColor = 'red';
               }
               else
               {
                  mdp.style.borderStyle = 'solid';
                  mdp.style.borderColor = 'green';   
               }

                }
        }
   var mdp2 = encodeURIComponent(mdp.value);
        xhr.open("GET", "VerifPass.php?mot_de_passe="+ mdp2 +"", true);
        xhr.send(null);
       
}


Haut
 Profil  
 
 Sujet du message: Re: [Ajax]Problème zarb O.o"
MessagePublié: 23 Jan 2009, 23:48 
Garde
Garde
Avatar de l’utilisateur

Inscrit le: 26 Sep 2006, 00:00
Messages: 1973
Points d'aide: Illimité

Créations :

Voir ses créations

Citer:
Dans ce script rien n'entre dans la bdd, donc mysql_real_escape_string est inutile je pense.

En fait je sorts simplement mot_de_passe de la bdd et je compare avec la donnée passée en get.

J'ai un peu de mal à comprendre, tu envoie tes mots de passe dans l'url ? C'est un peu risqué quand même oo"...En tout cas, mysql_real_escape_string s'avère souvent utile même dans une requete de type SELECT, je ne peux que te conseiller si ce n'est pas encore fait, de te renseigner à propos des injections SQL, comme ça tu pourras décider toi-même ce qu'il faut faire. Le principe est simple en vérité.

Citer:
Et j'ai déjà pensé à créer une méthode de hash, c'est un de mes futur projet, mais c'est très complexe.
En attendant sha1 est plus sécurisé que md5 alors je reste sous sha1, mais lorsque j'aurais fini mon jeu et mon hash, je recrypterais tous.

Fais-en un simple que tu combines à sha ou md5, c'est le mieux je pense (tu rajoutes une sécurité, qui augmente considérablement le "blindage" de ton cryptage :p). Enfin, de toute maniere, les membres n'ont pas du tout accès aux pass des autres membres, meme cryptés. Sinon il y a quelque chose à revoir^^ (d'où mon inquiétude sur le GET plus haut).

Citer:
Je penses que je vais aussi me lancer dans un tutoriel pour JavaScript et Ajax.
Si tu veux je te fais un cours par mp avec des tps, tu devrais comprendre assez vite =p

Malheureusement je n'ai pas beaucoup de temps libre, le mieux que je puisse faire c'est aller voir quand j'ai 2mn^^ Mais merci de la proposition, et aussi pour ta rréponse bien sur. Mais je devrais me débrouiller, je connais un peu le JS (j'ai beaucoup oublié), et la POO.

Bref, bonne continuation.

_________________
Image
Image


Haut
 Profil  
 
 Sujet du message: Re: [Ajax]Problème zarb O.o"
MessagePublié: 23 Jan 2009, 23:54 
Membre royal très actif
Avatar de l’utilisateur

Inscrit le: 06 Avr 2007, 00:00
Messages: 1209
Points d'aide: 1/60

Créations :

Voir ses créations

Re :p

Non t'inquiète les pass ne sont pas visible, d'ailleurs, AJAX ouvre la page pour l'executer, mais l'internaute ne vois rien.
De plus, il entre lui même son mot de passe qui est mis en get, si son mot de passe est poulet alors get vaudra poulet.

Le script va vérifier dans la bdd si get vaut le vrai mot de passe et agir en conséquence.


Je vais voir pour faire un tuto sur le fofo quand j'aurais le temps Wink


Haut
 Profil  
 
 Sujet du message: Re: [Ajax]Problème zarb O.o"
MessagePublié: 23 Jan 2009, 23:55 
Roi
Roi
Avatar de l’utilisateur

Inscrit le: 13 Aoû 2006, 00:00
Messages: 2417
Localisation: Montréal, QC
Logiciel(s) préféré(s): RMXP, VS2008
Point(s) Fort(s): Script
Points d'aide: Illimité

Créations :

- Séparation d'inventaire

- Sprite_Text


Voir ses créations

Même sur un simple SELECT, tu as toujours des risques d'une SQL injection.
Suffit que je mette une apostrophe dans le pseudo et je fais retourner ce que je veux à ta requête.


Haut
 Profil  
 
 Sujet du message: Re: [Ajax]Problème zarb O.o"
MessagePublié: 24 Jan 2009, 00:19 
Garde
Garde
Avatar de l’utilisateur

Inscrit le: 26 Sep 2006, 00:00
Messages: 1973
Points d'aide: Illimité

Créations :

Voir ses créations

Citer:
De plus, il entre lui même son mot de passe qui est mis en get, si son mot de passe est poulet alors get vaudra poulet.

Ca fait partie des trucs pas géniaux niveau sécurité, justement :p Imagine un internaute qui n'y connait rien et ne fait pas attention (un des principes de la prog c'est de considérer toujours le pire utilisateur possible^^) copie colle l'url, sur un forum par exemple.
"J'arrive pas a me connecter !! Regardez : truc.com/connect.php?motdepasse=tartiflette"
Evidemment c'est un peu extreme, mais bon, ce pauvre membre se fera vite piller son compte :/

Bref, on va pas épiloguer des heures là-dessus.^^ Pense aux hackers et aux injections SQL, mais aussi aux utilisateur...imprudents (on va dire ca comme ça !).
Je pense que pour un site et encore plus pour un jeu, il faut prendre le maximum de précautions, ça ne coute que 2 ou 3 lignes et quelques millisecondes de traitement Wink. Surtout si t'as rien de prévu pour détecter la triche (ce qui n'est pas forcément ce par quoi on commence).

_________________
Image
Image


Haut
 Profil  
 
 Sujet du message: Re: [Ajax]Problème zarb O.o"
MessagePublié: 24 Jan 2009, 01:54 
Membre royal très actif
Avatar de l’utilisateur

Inscrit le: 06 Avr 2007, 00:00
Messages: 1209
Points d'aide: 1/60

Créations :

Voir ses créations

Si niveau triche j'ai codé quelques fonctions :p
Comme je l'ai dis plus haut, l'utilisateur n'a pas accès à cette page, c'est ajax qui s'en sert, l'utilisateur ne sais même pas qu'elle existe et si il le sait, il ne sais pas qu'elle envoie un get, et si il le sait, au pire des cas, il arrivera seulement à afficher true ou false sur la page^^


Haut
 Profil  
 
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 8 messages ] 

Heures au format UTC + 1 heure [ Heure d’été ]


Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Rechercher pour:
Sauter vers:  
cron
RPG Creative Forum version 5 ; Tous droits réservés
phpBB Group (Traduit par Xaphos)
Optimisé pour une résolution 1024*728