und zwar probiere ich mich seit einiger Zeit an php. So hab ich schon eine Witze Datenbank und jetzt auch ein FTG Game Menü erfolgreich gecodet, wie man so schön sagt.
Nun habe ich allerdings ein Problem mit dem FTG Game Menü. Es funktioniert alles Prima, allerdings gibt es ein Problem mit dem Security System.
Wenn ich als Administrator einen Link aus dem Game Menü aufrufe, sei es Mindmaster oder Deal it or Leae it, dann kann ich ganz normal spielen. Gehe ich aber als Gast oder Mitglieder über das Game Menü dort hinein, wird mir angezeigt das ich versuche einen Hackangriff durchzuführen und das Mitglied wird gesperrt.
Ich hab mal die PHP-datei hier mit angebunden. Vermuten tuhe ich das es an diesem "header..." liegt. Aber ich weiss echt nicht warum der denkt das die Seite angegriffen wird.
Würde mich wirklich sehr freuen wenn du mir bei meinem Problem helfen könntest.
Code
error_reporting(E_ALL & ~E_NOTICE);
// Check if locale file is available matching the current site locale setting.
if (file_exists ( INFUSIONS . "ftg_game_menu/locale/" . $settings ['locale'] . ".php" )) {
// Load the locale file matching the current site locale setting.
include INFUSIONS . "ftg_game_menu/locale/" . $settings ['locale'] . ".php";
} else {
// Load the infusion's default locale file.
include INFUSIONS . "ftg_game_menu/locale/German.php";
}
opentable($locale['ftg_page01']);
$url = addslashes($_GET['url']);
$result = dbquery("UPDATE ".DB_PREFIX."game_menu SET game_count = game_count + 1 WHERE game_url = '$url'");
Problem ist, wenn eine http: // oder einfach nur ../ in einer _GET-Variable sind, dann blockiert das System dies sofort für Gäste und Mitglieder.
Als Superadmin ist man davor befreit.
die Lösung:
du wandelst vor dem Übergeben via get die url per base64_encode ind einen codierten String und bei der Auswertung der $url wieder in die Ausgangsform zurück:
Da ich nicht weiß wie die Übergabe gemacht wird, kann ich dir den Schritt für base64_encode hier nicht schreiben, sondern nur den für das Decodieren
Ich hab das jetzt schon mal probiert. Allerdings ist das doch etwas kompliziert. Irgendwie verschlüsselt er das zwar aber so wirklich weiterleiten tut er nicht
Und zwar spielt sich das ganze ja so ab:
----------------------------------------------------------