Black-Rider
New Member
Hallo,
ich habe ein kleines Minigame geproggt. Jedoch habe ich nun ein Problem. Es gibt noch eine Sicherheitslücke! Hier erstmal mein Script:
Wer es testen möchte kann dies hier tun:
http://hack-esports.de/galgen.php
Nun mein Problem. Wenn man ein Wort eingegeben hat und und dann einfach auf zurück klickt hat man wieder 6 Versuche! Also so kann man Theoretisch jedes Wort lösen. Aber ich möchte nicht, wenn man zurück geht, kann man wieder 6 Versuche hat.
Kann jemand das Script mal so verändern, dass das net mehr geht?
Muss gestehen habe über 1 Jahr kein php mehr genutzt^^
Hoffe ihr könnt mir helfen.
MFG
Black-Rider
Edit: Sobald das Script komplett fertig ist wird es zum kostenlosen download gestellt inklusive Adminbereich! Aber vorher darf es nirgentwo veröffentlicht werden!
ich habe ein kleines Minigame geproggt. Jedoch habe ich nun ein Problem. Es gibt noch eine Sicherheitslücke! Hier erstmal mein Script:
PHP:
<?php
function myconnect()
{
$dbhost = "localhost";
$dbpass = "*******";
$dbuser = "*****";
$dbname = "usr_web27_*";
mysql_connect($dbhost,$dbuser,$dbpass)or die(mysql_error());
mysql_select_db($dbname);
}
myconnect();
if (isset($_POST['word'])) {$word = $_POST['word'];}
else
{
$r = mysql_fetch_assoc(mysql_query("SELECT COUNT(word) FROM galgen"));
$rand = rand(1,$r['COUNT(word)']);
$query = mysql_query("SELECT word FROM galgen WHERE id='".$rand."'");
$wort = mysql_fetch_assoc($query);
$word = strtoupper($wort['word']);
}
if (isset($_POST['letter'])) {$letter = strtoupper($_POST['letter']);}
else {$letter = '0';}
if (isset($_POST['tryouts'])) {$tryouts = $_POST['tryouts'];}
else {$tryouts = 6;}
if ($tryouts == 0)
{
die('Schade du konntest das Wort nich auflösen. Es lautete '.$word.'!'); exit();
}
if (isset($_POST['found'])) {$found = $_POST['found']; $found1 = explode(' ', $found);}
$letters = strlen($word);
$pos = 0;
while($pos != $letters)
{
if ($word[$pos] == '-')
{
$search[$pos] = '-';
}
elseif ($word[$pos] == ' ')
{
$search[$pos] = ' ';
}
elseif ($word[$pos] == ',')
{
$search[$pos] = ',';
}
elseif ($word[$pos] == '.')
{
$search[$pos] = '.';
}
elseif ($word[$pos] == $letter)
{
$search[$pos] = ''.$letter.'';
$suc = 1;
}
else
{
$search[$pos] = '_';
}
$pos++;
}
$pos1 = 0;
while($pos1 != $pos)
{
$foundedletters = count($found1);
while($foundedletters != 0)
{
$foundcheck = $foundedletters-1;
if ($word[$pos1] == $found1[$foundcheck])
{
$search[$pos1] = $found1[$foundcheck]; break;
}
$foundedletters--;
}
$pos1++;
}
$pos2 = 0;
$searched = '';
$searched1 = '';
foreach ($search AS $key=>$value)
{
$searched1.= $value;
}
while($pos2 != $pos1)
{
$searched.= ''.$search[$pos2].'<span style="font-size: 40%;"> </span>';
$pos2++;
}
if ($searched1 == $word)
{
echo $searched;
echo '<p>
<form action="galgen.php" method="post">
Nun gebe das Wort bitte zur Bestätigung ein? ("-", ",", "." und Leerzeichen sind mitzuschreiben)<p>
<input name="solution" size=25> <input type="submit" value="Lösen">
<input type="hidden" name="found" value="'.$found.'">
<input type="hidden" name="word" value="'.$word.'">
<input type="hidden" name="tryouts" value="'.$tryouts.'">
<input type="hidden" name="credits" value="'.$credits.'">
</form>';
}
else
{
echo $searched; echo '<p>';
if (isset($found) && $suc == 1){$found.= ' '.$letter.'';}
elseif (!isset($found) && $suc == 1) {$found = $letter;}
if (isset($_POST['solution']))
{
$solution = $_POST['solution'];
if (strtoupper($solution) == $word)
{
echo '<h3>Hinweis</h3><p>Super du hast das Wort herausgefunden!'; exit();
}
else
{
echo '<h3>Hinweis</h3><p>Das war leider nicht richtig! Versuche noch mehr Buchstaben herauszufinden!</p>';
}
}
if ($suc == 0)
{
$tryouts--;
if ($tryouts == 0)
{
echo '<h3>Hinweis</h3><p>Schade du konntest das Wort nich auflösen. Es lautete '.$word.'!'; exit();
}
}
echo '<form action="galgen.php" method="post">
Ist ein <input name="letter" size=1> enthalten <input type="submit" value="?">
<input type="hidden" name="found" value="'.$found.'">
<input type="hidden" name="word" value="'.$word.'">
<input type="hidden" name="credits" value="'.$credits.'">
<input type="hidden" name="tryouts" value="'.$tryouts.'">';
echo '</form><p>oder
<form action="galgen.php" method="post">
Möchtest du auflösen? ("-", ",", "." und Leerzeichen sind mitzuschreiben)<p>
<input name="solution" size=25> <input type="submit" value="Lösen">
<input type="hidden" name="found" value="'.$found.'">
<input type="hidden" name="word" value="'.$word.'">
<input type="hidden" name="tryouts" value="'.$tryouts.'">
<input type="hidden" name="credits" value="'.$credits.'">
</form><p>Du hast noch '.$tryouts.' Versuche übrig!';}
?>
http://hack-esports.de/galgen.php
Nun mein Problem. Wenn man ein Wort eingegeben hat und und dann einfach auf zurück klickt hat man wieder 6 Versuche! Also so kann man Theoretisch jedes Wort lösen. Aber ich möchte nicht, wenn man zurück geht, kann man wieder 6 Versuche hat.
Kann jemand das Script mal so verändern, dass das net mehr geht?
Muss gestehen habe über 1 Jahr kein php mehr genutzt^^
Hoffe ihr könnt mir helfen.
MFG
Black-Rider
Edit: Sobald das Script komplett fertig ist wird es zum kostenlosen download gestellt inklusive Adminbereich! Aber vorher darf es nirgentwo veröffentlicht werden!