Une application qui veut envoyer des statistiques

Résolu
Lapin0u Messages postés 6 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 27 février 2007 - 27 févr. 2007 à 12:45
Lapin0u Messages postés 6 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 27 février 2007 - 27 févr. 2007 à 21:39
Bonjour,

Je suis en train de modifier les sources du célèbre jeu nethack (sources en c) sous windows afin de pouvoir comme le font certains serveurs public, faire des statistiques sur les parties.
Pour cela, à la fin d'une partie, je voulais me connecter à ma base de données mysql afin d'envoyer une requête avec quelques données sur la partie. Mais comme ma base de donnée est hébergée chez club-internet, accessible uniquement en localhost, je ne pouvais pas procéder comme ça.

Donc j'ajoutais les infos dans un fichier sur mon ftp, puis lors de l'accès à ma page statistiques.php, la base de donnée se mettait à jour.
Cette solution marchait mais je me suis rendu compte qu'elle présentait un gros problème de sécurité puisque n'importe qui avec tcpdump ou ethereal était capable de connaitre mon login/motdepasse de mon ftp.

Donc là je suis un peu perdu, je sais pas trop comment m'y prendre, surtout que je ne tiens pas à créer un serveur sur mon ordi qui s'occuperait de relayer les données.

Vous connaissez un moyen de sécuriser le service ftp fourni par un provider ? un moyen d'éxécuter une page php depuis une application c genre : "http://www.monsite.com/fonction.php?score="2000"...." ou alors un meilleur moyen ?

Merci d'avance !

2 réponses

Lapin0u Messages postés 6 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 27 février 2007
27 févr. 2007 à 18:35
Pour ceux que ça intéresse, j'ai trouvé une solution!!!!

______________________________________________________________________________________________
Dans le fichier .c qui s'affichent à la mort du personnage j'ai ajouté

#include <wininet.h>
#include <windows.h>

/*score nh*/
    char buf[1024];

    //création de la requête
    sprintf(buf,"http://thenubuk.club.fr/perso.php?requete=");
    sprintf(buf+strlen(buf), "INSERT INTO `personnages` ( `id` , `score` , `nom` , `niveau_max` , `hp` , `hpmax` , `role` , `race` , `sexe` , `alignement` , `mort` ) VALUES ( '', '%i' ", t0->points);
    sprintf(buf+strlen(buf), ", '%s' ", t0->name);
    sprintf(buf+strlen(buf), ", '%i' ", t0->maxlvl);
    sprintf(buf+strlen(buf), ",'%i', '%i' ", t0->hp,t0->maxhp);
    sprintf(buf+strlen(buf), ",'%s' ",t0->plrole);
    sprintf(buf+strlen(buf), ", '%s' ",t0->plrace);
    sprintf(buf+strlen(buf), ", '%s' ",t0->plgend);
    sprintf(buf+strlen(buf), ", '%s' ",t0->plalign);
    sprintf(buf+strlen(buf), ", '%s' );",t0->death);
 
    //connexion au serveur web
    HINTERNET hInternetSession, hHttpSession;
    hInternetSession = InternetOpen ("mon app", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, NULL) ;
    hHttpSession = InternetOpenUrl( hInternetSession, buf, NULL, 0, 0, 0 ) ;

    //fermeture de la connexion
    InternetCloseHandle( hHttpSession );
    InternetCloseHandle (hInternetSession) ;
_______________________________________________________________________________________________

Et dans la page perso.php j'ai mis :

// on sélectionne la base
$db = mysql_connect('host', 'login', 'mdp');
mysql_select_db('nethack',$db);

// on crée la requête SQL
$query = $_GET['requete'];

// on l'éxécute
$result = mysql_query($query);

// on ferme la base de donnée
mysql_close();
________________________________________________________________________________________________

Si vous ne voulez pas vous prendre trop la tête avec le makefile, pensez juste à ajouter à cette ligne
WINPLIBS =  -lcomctl32 -lwinmm
un -lwininet

Salut à tous, bientôt les sources de toute mes modifications
3
Lapin0u Messages postés 6 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 27 février 2007
27 févr. 2007 à 21:39
d'aileurs il faut protéger un tout petit peu le fichier php pour n'autoriser que les requêtes qui ajoutent un élément sinon on peut faire n'importe quoi, c'est pas top...
0
Rejoignez-nous