login  Naam:   Wachtwoord: 
Registreer je!
 Forum

dynamisch getal verknoeit session ?

Offline vinTage - 02/04/2006 18:29
Avatar van vinTageNieuw lid Hoi lezers.

Zoals sommigen wel weten probeer ik om een stukje veiligheid in te bouwen in flash (basicly om "rippen" tegen te gaan, maar ook om cheaten bij spelletjes tegen te gaan)

Nu heb ik iets in elkaar geflanst wat je hieronder kan lezen
  1. <?PHP
  2. include("config.php");
  3.  
  4.  
  5. $secretHash = md5(microtime()/2000000*date("sYs"));
  6. //$secretHash = "aap";
  7. $_SESSION['maakGeheimeSessieAan'] = $secretHash;
  8.  
  9. if($_SERVER['REQUEST_METHOD'] == "POST")
  10. {
  11.  
  12. if($_POST['secretVar'] == $_SESSION['maakGeheimeSessieAan'])
  13. {
  14. //tot zover zijn de checks allemaal in orde dus hier de "actions"
  15. mysql_query("INSERT INTO anticheat (naam, bericht, datum)
  16. VALUES ('".mysql_real_escape_string($_POST['naam'])."',
  17. '".mysql_real_escape_string($_POST['bericht'])."',
  18. '".date("Y-m-d")."')") or die();
  19. }
  20.  
  21. else
  22. {
  23. echo "oprotten";
  24. }
  25. }
  26. ?>
  27.  
  28. <object type="application/x-shockwave-flash" data="index.swf" width="400" height="500" ">
  29. <param name="movie" value="index.swf" />
  30. <param name=FlashVars VALUE="&checkOne=<?=$secretHash?>">
  31. </object>
  32.  
  33.  
  34. <p>deze character reeks staat in mn sessie <? print_r($_SESSION['maakGeheimeSessieAan']); ?><br />
  35. </p>


Het werkt perfect als ik die secretHash = "aap" gebruik, maar zodra ik die dynamische secretHash gebruik, dan gaat het fout, hij post doodleuk gewoon niets....
Ik zit echt al heel de gondsganze middag daarmee te prutsen, maar ik zie niet waarom hij fout gaat...
Ik heb in de swf een textvakje gezet waar "de hash" in te lezen is, onderaan mn index.php echo ik de waarde in mn session, en die zijn beide gelijk....(ook als ik die dynamische hash gebruik)

Wat is er fout ?
:'(

een "niet werkend" voorbeeld kan je hier terug vinden...bovenin de swf zie je rode lettertjes staan, dat is de flashVar
Helemaal beneden op die pagina zie je de inhoud van mn sessie

9 antwoorden

Gesponsorde links
Offline Ontani - 02/04/2006 18:51
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
echo na het posten nog eens terug die sessionVar en die hash van de Post. ik vind het maar iets geks
Offline Stijn - 02/04/2006 18:55 (laatste wijziging 02/04/2006 18:57)
Avatar van Stijn PHP expert $secretHash = md5(microtime()/2000000*date("sYs"));
date("sYs"); -> wat is dit als ik beleefd mag vragen?

[edit]

bedoel je seconde - jaar - seconde ??
Offline Ontani - 02/04/2006 18:56
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
s = seconden van 00 tot 59
Y = jaartal van 1970 tot 2006
s = seconden van 00 tot 59
Offline vinTage - 02/04/2006 18:58 (laatste wijziging 02/04/2006 18:59)
Avatar van vinTage Nieuw lid @stijn: seconde jaartal seconde

Gewoon een random nummer waar nooit iemand op gaat komen om te "maken" 
Het kan evengoed rand(0,1000000000000) zijn, maarjah ik moest toch iets he 


@Ontani, maar het werkt wel met "aap" dus die waardes zijn gewoon hetzelfde lijkt me..
Bovendien "ververst" de pagina niet, dus kunnen die waardes niet "veranderen"
Offline Stijn - 02/04/2006 19:00 (laatste wijziging 02/04/2006 19:03)
Avatar van Stijn PHP expert weet niet zeker , maar vervang aap eens door 999 en werkt ie dan nog steeds?

[edit]

volgens mij ligt aan die dynamische inhoud, want aap is static hé 
<param name=FlashVars VALUE="&checkOne=<?=$secretHash?>">
vervang es dit door dit:
<param name=FlashVars VALUE="&checkOne=<?=$_SESSION['maakGeheimeSessieAan']?>">

normaal werkt dit nu wel...
Offline vinTage - 02/04/2006 19:01 (laatste wijziging 02/04/2006 19:05)
Avatar van vinTage Nieuw lid jep, net "local" getest, en geen probleem

@ je edit, nope, werkt nog niet 
Offline Stijn - 02/04/2006 19:07 (laatste wijziging 02/04/2006 19:12)
Avatar van Stijn PHP expert haha , nu heb ik het sé Je refreshed de pagina door op de verzend knop te drukken waardoor hij een nieuwe hash aanmaakt en die niet meer klopt met de vorige hash 

Oplossing: zal eens denken hé

[edit]

je moet maar eens in je IF lus je 2 variablen echoën...

[oplossing]
  1. <?
  2. ...
  3. $secretHash = ( isset( $_SESSION['maakGeheimeSessieAan'] ) === false ) ? md5(microtime()/2000000*date("sYs")) : $_SESSION['maakGeheimeSessieAan'] ;
  4. ...
  5. ?>


dit moet werken 
Offline vinTage - 02/04/2006 19:17 (laatste wijziging 02/04/2006 19:22)
Avatar van vinTage Nieuw lid @stijn, dat is ook de reden dat ik het in een session steek, maar mischien moet ik de session naam ook "dynamisch maken"

bijvoorbeeld een check die kijkt of die eerste sessie al bestaat, dan een andere sessie naam geven aan de "nieuwe" sessie.

Ik zal eens gaan proberen



edit, oh je edit gemist, ik ga jou ding eerst testen.


edit2 w00t, geweldig geezerD (k) !!

Nu nog uitgebreid testen, maar met 2 testjes had ik geen problemen 
Offline Stijn - 02/04/2006 19:27
Avatar van Stijn PHP expert
Citaat:
w00t, geweldig geezerD (k) !!

:$ :$ *bloos*bloos
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.202s