possible d'ouvrir une page qu'une fois par connection

ViPHP
ViPHP | 5924 Messages

30 août 2007, 23:41

Oui, j'ai pas été clair. Je voulais dire :
- une solution serait l'authentification.
- une autre solution serait un système de cookie ou de sessions.

- mais l'identification par ip n'est pas une solution car en plus d'avoir plus de défauts que les deux premières concernant la sécurité, elle empêcherait des joueurs "honnêtes" de jouer :wink:
Non, mais c'est moi qui n'ai pas été clair en fait, je voulais dire que même sans suivre parfaitement ce topic, quand on parle de sécurité, c'est général, il est absolument impossible d'avoir un système parfait. J'allais parfaitement dans ton sens, je soulignais juste que la mention à rayer, c'était le "difficile"…

Si c'était possible d'avoir un système viable dans ce genre de domaine, le multicompte dans les jeux multijoueurs n'existerait pas et ne serait pas la bête noire des MJ.

ViPHP
AB
ViPHP | 5818 Messages

31 août 2007, 00:08

J'allais parfaitement dans ton sens, je soulignais juste que la mention à rayer, c'était le "difficile"…
Ok, tu l'avais joué trop fine pour moi sur ce coup là :lol:

Eléphanteau du PHP | 43 Messages

31 août 2007, 00:22

si je met un imput caché qui contient l'id de session, puis au rafraîchissement de la page faire une vérification avec un if() ?

Je pense que le problème peut être résolu qu'avec la session et le timesnamp
Le système de session peut être utilisé. C'est une solution qui marchera pour tout le monde (car certains bloquent les cookies) mais qui est aussi la plus facilement contournable puisqu'il suffit de fermer son navigateur et de le réouvrir pour démarrer une nouvelle session. Maintenant tout dépend du niveau de sécurité que tu souhaites, évidemment.

Une solution un peu plus élaborée serait d'ajouter à cette première méthode, l'emploi de cookie - avec avertissement uniquement pour les utilisateurs qui ont bloqué les cookies, tu les empêches de jouer tant qu'il n'ont pas réactiver la réception de cookies.
Avec la session tu les empêche de rejouer tant qu'il sont dans la même session.
Avec le cookie, (pas un cookie de session bien entendu), tu stockes l'heure de connexion dans le cookie et tu les empêche de rejouer avant l'heure de connexion + 24 h par exemple.

Evidemment un cookie ça peut s'effacer ou se modifier mais ça prend un peu plus de temps que de fermer/ouvrir son navigateur (surtout si on ne veux pas effacer tous les cookies d'un coup).

A moins qu'il y ait beaucoup de millions à gagner (auquel cas donnes moi l'adresse de ton jeu :lol:) ça peut suffire pour décourager certains à ne pas contourner ton système de contrôle.

Cela dit si ton jeu est juste une simulation qui dure le temps d'une session, la variable de session est la voix royale et suffisante.
ce n'est pas grave que l'utilisateur puisse se connecter à divers moments de la journée plusieurs fois par jour.

Pour le moment, il y a deux moyens de doubler les gains illégalement :
ouvrir plusieurs fois la page grâce au onglet de firefox
ouvrir une session avec un deuxième navigateur différent

ViPHP
AB
ViPHP | 5818 Messages

31 août 2007, 01:24

Pour le moment, il y a deux moyens de doubler les gains illégalement :
1/ouvrir plusieurs fois la page grâce au onglet de firefox
2/ouvrir une session avec un deuxième navigateur différent
avec les variables de sessions ou les cookies tu te protège de la n°1

2/la majorité des utilisateurs n'ont pas deux navigateurs. Si tu veux aller plus loin dans ce sens il te faudra un système d'authentification, tout en sachant que ce n'est pas infaillible.

ViPHP
ViPHP | 5924 Messages

31 août 2007, 01:41

Ou sinon tu mets plusieurs pubs très aggressives sur cette page et tu passes au jackpot si quelqu'un essaye de tricher…

ViPHP
AB
ViPHP | 5818 Messages

31 août 2007, 05:09

Ou sinon tu mets plusieurs pubs très aggressives sur cette page et tu passes au jackpot si quelqu'un essaye de tricher…
OK mais alors uniquement pour les tricheurs, bien entendu :lol:

Ah c't'embrouilleur celui là ! :P

ViPHP
ViPHP | 5924 Messages

31 août 2007, 12:11

OK mais alors uniquement pour les tricheurs, bien entendu :lol:
Bah non puisque si on savait vraiment les détecter yaurait pas besoin de faire ainsi :)

Eléphanteau du PHP | 43 Messages

31 août 2007, 12:12

Pour le moment, il y a deux moyens de doubler les gains illégalement :
1/ouvrir plusieurs fois la page grâce au onglet de firefox
2/ouvrir une session avec un deuxième navigateur différent
avec les variables de sessions ou les cookies tu te protège de la n°1

2/la majorité des utilisateurs n'ont pas deux navigateurs. Si tu veux aller plus loin dans ce sens il te faudra un système d'authentification, tout en sachant que ce n'est pas infaillible.
c'est bien ce que j'avais pensé.

Alors, comment m'y prendre parce que je suis un peu perdu

ViPHP
AB
ViPHP | 5818 Messages

31 août 2007, 20:40

OK mais alors uniquement pour les tricheurs, bien entendu :lol:
Bah non puisque si on savait vraiment les détecter yaurait pas besoin de faire ainsi :)
Perdu! T'as pas du faire attention à mon petit commentaire en grisé 8-)
Cette fois-ci c'est moi qui l'ai joué trop fine pour toi. 1 partout, balle au centre :P

ViPHP
ViPHP | 5924 Messages

31 août 2007, 21:05

Perdu! T'as pas du faire attention à mon petit commentaire en grisé 8-)
Cette fois-ci c'est moi qui l'ai joué trop fine pour toi. 1 partout, balle au centre :P
Si si, mais je l'ai pas compris :p
Allez, sans rancune ? :mrgreen:

ViPHP
AB
ViPHP | 5818 Messages

31 août 2007, 21:49

Perdu! T'as pas du faire attention à mon petit commentaire en grisé 8-)
Cette fois-ci c'est moi qui l'ai joué trop fine pour toi. 1 partout, balle au centre :P
Si si, mais je l'ai pas compris :p
Allez, sans rancune ? :mrgreen:
Evidemment sans rancune!
C'est juste pour le jeu! Comme j'avais bien lu ton service, j'ai pu faire un retour gagnant :wink:


@solodown
Tu déclares session_start(); qui comme son nom l'indique démarre la session.

L'avantage des variables de sessions étant qu'elles sont disponibles jusqu'à la fermeture de la session.
Ensuite y'a plus qu'à...

Par exemple :
session_start();
// $page_consultee = 1 si $_SESSION['verif'] existe et est égale à 1 sinon $page_consultee = 2
$page_consultee = (isset($_SESSION['verif']) && $_SESSION['verif'] == 1)? 1 : 2;

// affectation de la valeur 1 à $_SESSION['verif'] pour indiquer que la page viens d'être consultée
$_SESSION['verif'] = 1;

if ($page_consultee == 2 )
{
// ... exécution du code qui fait gagner gagner des points
}
else
{
//sinon rien ou redirection vers une page de ton choix avec un header
}

Eléphanteau du PHP | 43 Messages

01 sept. 2007, 14:21

AB je viens d'éssayé le code

Le prob est que lorsque ce que la page se rafraichie au bout des XX secondes sa affiche //sinon rien ou redirection vers une page de ton choix avec un header

ViPHP
AB
ViPHP | 5818 Messages

01 sept. 2007, 19:23

session_start();

$_SESSION['verif'] = isset($_SESSION['verif'])?  $_SESSION['verif'] : 0;

if ($_SESSION['verif'] < 2 )
{
$_SESSION['verif']++;
// ... exécution du code qui fait gagner gagner des points
}
else
{
//ici tu mets le code que tu veux et qui s'exécutera au troisième affichage de ta page
} 
Avec ce code la page pourra s'afficher une fois puis se rafraichir (c'est à dire s'afficher une seconde fois) et à la troisième fois elle exécutera le code après le else.

Eléphanteau du PHP | 43 Messages

14 sept. 2007, 14:01

sa ne vas pas

La page doit ce reactualisé toutes les xx secondes

ViPHP
AB
ViPHP | 5818 Messages

14 sept. 2007, 16:29

Ben c'est que tu as un pb de méthode dans le fonctionnement du gain de tes points.

Il faut donc que la page ne puisse s'afficher qu'une fois, contrôlée par une variable de session avec php, et tu fais le décompte de tes points en fonction du temps écoulé sur cette page en javascript (sans rafraichissement de la page).

Et tu passes la variable javascript dans un post par exemple.

J'ai pas le temps de te donner + de détails pour l'instant. En début de semaine prochaine si personne ne t'a aidé d'ici là. Mais c'est pas compliqué à faire.