Recherche expert PHP pour la protection d'une page

Eléphant du PHP | 129 Messages

18 août 2009, 12:01

Bonjour à tous,
Je chercher un expert en PHP pour la vérification de ma page php, voir s'il n'y a pas d'erreur et surtout la protection de celle-ci.
Ma page php fonctionne, mais j'ai vu que l'on pouvais faire des truc pas très cool.
Merci à tous !!!!!!!

ViPHP
ViPHP | 4039 Messages

18 août 2009, 12:58

Hé ben, il te suffit de poster ta page ici, entre de belles balises php, et on te le dira :wink:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

ViPHP
ViPHP | 5924 Messages

18 août 2009, 13:00

Ou alors de donner ton prix. Je suis sûr qu'il y aurait du monde intéressé pour t'aider…

Eléphant du PHP | 129 Messages

18 août 2009, 13:24

Merci à vous !
Oui forcement le prix ihihihih, malheureusement mon compte est déjà -250 euro déjà snifff LOL :mrgreen: vaêtre dur le fin du mois.
Donc voila en faite mon problème avec ma page, j'entre un code, si le code est bon, alors on ajoute des points au membre.
Problème, est que si je clique ou fait un f5, alors il aura plus de point à chaque fois, du coup ça le fait pas, j'arrive pas à résoudre se problème, merci de votre aide.
<?php
necessite_identification();
if(isset($_GET['mgcode']))
{
	$verif = FALSE;
	if(isset($_POST['code']))
	{	
			$code = mysql_real_escape_string($_POST['code']);
			$info = $db->query("select * from code_listes where code = '$code'");
			if($db->num_rows($info) == 1)
			{							
				$date_utilisation = date('Y-m-d');
				$expire = date("Y-m-d",mktime(0,0,0,date("m")+6,date("d"),date("Y")));
				$db->query("insert into code_listes_servis values ('$code','".$info['pour']."','".$info['le']."','$pseudo','$date_utilisation','$expire')");
			
				if(verifPlus() == true) 
				{
					$db->query("update joueur set point_plus=point_plus+".$CONFIG['nbr_points_plus_code']." where pseudo = '$pseudo'");	
				}
				
				$db->query("UPDATE joueur SET 
					partie_sup = partie_sup + ".$CONFIG['nb_partie'].", 
					nb_code = nb_code + 1 
					WHERE pseudo ='".$pseudo."'");
				
				// on supprime le code
				$lib = $db->query("DELETE LOW_PRIORITY from code_listes where code = '".$code."'");
				?>
				<center>Code valide, compte crédité.<br />
				<br /><a href="index.php">Accueil</a></center>
				<?php
				$verif = TRUE;
			}
	}
	if($verif == FALSE)
	{
?>
<center>Code invalide.<br />
			<a href="index.php">Accueil</a></center>
		<?php	
	}
}
elseif(isset($_GET['mg']) && $_GET['mg'] == 'bon')
{
	print html_entity_decode($CONFIG["paiement_verification"]);	
		
	$code = $HTTP_GET_VARS["RECALL"];
	if(verifPlus() == true) 
	{
		$db->query("update joueur set point_plus=point_plus+".$CONFIG['nbr_points_plus_code']." where pseudo = '$pseudo'");	
	}						
	$db->query("UPDATE joueur SET 
		partie_sup = partie_sup + ".$CONFIG['nb_partie'].", 
		nb_code = nb_code + 1 
		WHERE pseudo ='".$pseudo."'");				
	$db->query("insert into appel_audiotel values('','$pseudo','$code','".date('Y-m-d')."')");
	?>
		<center>Code valide, compte crédité.<br />
		<br /><a href="index.php">Accueil</a></center>
	<?php	
}
elseif(isset($_GET['mg']) && $_GET['mg'] == 'erreur')
{
	?>
		<center>ERREUR Code invalide.<br />
		<a href="index.php">Accueil</a></center>

Mammouth du PHP | 991 Messages

18 août 2009, 13:35

En général je résous ce souci avec une redirection méta : <meta http-equiv="refresh" content="'10; url='.$url.'" />';

Sinon tu enregistre en session le fait qu'il a deja vu la page , avec par exemple en enregistrant le time ( time() ) de la visite , et tu vérifie avant ton traitement du formulaire
si le temps entre sa précedente visite et le time actuel que ce ne soit pas trop court.

Bonne journée Hawk
DevOps, Symfony4, Hoa

Eléphant du PHP | 129 Messages

18 août 2009, 13:56

Merci Thehawk, j'avais déjà fait un test avec un refresh, mais le problème se pose vraiment au niveau :
elseif(isset($_GET['mg']) && $_GET['mg'] == 'bon')
{
	print html_entity_decode($CONFIG["paiement_verification"]);	
		
	$code = $HTTP_GET_VARS["RECALL"];
	if(verifPlus() == true) 
	{
		$db->query("update joueur set point_plus=point_plus+".$CONFIG['nbr_points_plus_code']." where pseudo = '$pseudo'");	
	}						
	$db->query("UPDATE joueur SET 
		partie_sup = partie_sup + ".$CONFIG['nb_partie'].", 
		nb_code = nb_code + 1 
		WHERE pseudo ='".$pseudo."'");				
	$db->query("insert into appel_audiotel values('','$pseudo','$code','".date('Y-m-d')."')");
partiplus.php?mg=bon

Cela va ajouter toujours, sinon peut être que si l'on vide les varialbes apres, ils auront disparu et du coup pas d'insertion.
Problème je ne sais pas comment l'écrire.
Merci de votre aide !

Eléphant du PHP | 369 Messages

18 août 2009, 15:35

Salut,

Voici une solution dont je me sert pour "pister" les users et celle-ci, si adaptée,
convient tout à fait pour ce que tu cherches. Elle peut aussi, pour info, servir à connaitre
le nombre de users online ainsi que savoir s'il s'agit d'1 aspi... :

1) Te faut un ID unique,
Les sessions fournissent un ID propre et qui ne se reset à chaque deco du client
ou selon un laps de temps déterminé.

2) L'IP du visiteur,
Ca parmet juste de trouver le user, savoir si l'IP est hackée on s'en fiche.
C'est juste un repérage.

3) Une valeur/page
La c'est juste ton url-access dont tu te sert, par exemple:
/accueil/toto.php. Chaque URL ayant un nom (composé) unique
Ainsi, à chaque refresh (ou précédent) tu sauras d'ou vient le user
et pourra le re-diriger autrepart...

4) Un Timeout par page.
La, la fonction
<?php microtime(TRUE); ?>
fait l'affaire.

Tu assembles le tout, tu sauvegardes dans la $_SESSION[user] (par exemple)
et voili, voilou... Quelque test, une gestion lecture/ecriture et te voila
protégé de quelques abus.

Ta session sera, ainsi, composée de:
[...]
$_SESSION[user][ip]
$_SESSION[user][fromPage]
$_SESSION[user][lastAccess]
[...]
Et à chaque accès: soit tu crées un session, soit tu la modifies...
<?php
   // Rappel: l'init session doit être avant tout autre accès au serveur
   //
   session_start();
   [...]
   if (!isset($_SESSION[user]) 
   {
      $_SESSION[user] = Array();
   }
   else
   {
      // Tes test se trouvent ici
      [...]

      // Resultat si vrai: OK, si faux: Redirect ou autre...
      if (false) { ??? };
   }

   // Suite de ta page
   //
   [...]
?>
@+ bon code ;)

Eléphant du PHP | 129 Messages

18 août 2009, 15:59

Merci pour toute c'est info FuZZyLine 8-)