[AIDE] Retour arrière ? "Allopass " bug explication

Signaler
Messages postés
10
Date d'inscription
vendredi 13 mai 2011
Statut
Membre
Dernière intervention
16 février 2013
-
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
-
Bonjour :-)

Alors voilà j'ai un problème avec mon code allopass,
Il fonctionne niquel mais j'ai un soucis, c'est un système de point (db ..) une fois que l'utilisateur fais son sms et donne le code, la validation ce fait et donne 1500 points.
Seulement si ils font précédent, précédent ... puis suivant suivant ... bah ils ont de nouveau 1500 points.

J'aimerais savoir comment contrer cela.
Avoir un script anti retour ? (précédent)

Mettre une session destroy marcherais ? session_destroy()


mon script allopass :

<?php
session_start();

if(isset($_GET['valid']) and $_GET['valid']=='ok' and @!empty($_GET['RECALL']))
{

//Vérification du code par allopass
$RECALL = urlencode($_GET['RECALL']);
$AUTH = urlencode($CONFIG_is['auth']);

$r = @file( "http://payment.allopass.com/api/checkcode.apu?code=$RECALL&auth=$AUTH" );

//Connection DB	
mysql_connect('91.121.**.**', 'root', '********************');
$idcompte = $_SESSION['id_syg'];

//Query
$sql="UPDATE account.account SET cash = cash+1500 WHERE id = $idcompte";
mysql_query($sql) or die (mysql_error());

//Redirection
header("Location: index.php?p=11&v=ok");

}
/**
 *Si on recoit un payement erroné
 **/
elseif(isset($_GET['valid']) and $_GET['valid']=='nok')
{
header("Location: index.php?p=11&v=nok");

}
/**
 *Si on ne recoit pas de  payement
 **/
else
{
header("Location: index.php?p=11&v=nok");
}

?>


Merci de votre aide !

1 réponse

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
340
Bonjour,

Le problème vient des chois de conception que tu as fait. Un script "anti retour", ca n'existe pas.

Avant d'ajouter les points, il faut que tu vérifies si l'allopass est valide et ne transmet pas l'option valid de page en page.