Posiadam stronę z grami, w których pobija się wyniki, no i oczywiście osoby, z najlepszym wynikiem dostają puchar

No i tak. W każdej grze mam dodany taki kod:
Kod
// [Action in Frame 2]
_quality = "MEDIUM";
sendscore = new LoadVars();
sendscore.gscore = _root.thi_score;
sendscore.gname = "clownkilleribpg2";
sendscore.send("index.php?act=Arcade&do=newscore", "_self", "POST");
stop ();
_quality = "MEDIUM";
sendscore = new LoadVars();
sendscore.gscore = _root.thi_score;
sendscore.gname = "clownkilleribpg2";
sendscore.send("index.php?act=Arcade&do=newscore", "_self", "POST");
stop ();
sendscore.send("index.php?act=Arcade&do=newscore", "_self", "POST"); To odpowiada za wysyłanie score z gry na serwer.
No i to jest cześć pliczku, który odpowiada za ściągnięcie score na serwer:
Kod
$arcade = $HTTP_GET_VARS['act'];
$newscore = $HTTP_GET_VARS['do'];
if($arcade == 'Arcade' && $newscore='newscore')
{
$gamename = str_replace("\'","''",$HTTP_POST_VARS['gname']);
$gamename = preg_replace(array('#&(?!(\#[0-9]+;))#', '#<#', '#>#'), array('&', '<', '>'),$gamename);
$gamescore = intval($HTTP_POST_VARS['gscore']);
//Get Game ID
$row = $db->sql_fetchrow($db->sql_query("SELECT game_id from ".$prefix."_bbgames WHERE game_scorevar='$gamename'"));
$gid = intval($row['game_id']);
$ThemeSel = get_theme();
echo "<LINK REL=\"StyleSheet\" HREF=\"themes/$ThemeSel/style/style.css\" TYPE=\"text/css\">\n\n\n";
echo "<form method='post' name='ibpro_score' action='modules.php?name=Forums&file=proarcade&valid=X&gpaver=GFARV2'>";
echo "<input type=hidden name='vscore' value='$gamescore'>";
echo "<input type=hidden name='gid' value='$gid'>";
echo "</form>";
$newscore = $HTTP_GET_VARS['do'];
if($arcade == 'Arcade' && $newscore='newscore')
{
$gamename = str_replace("\'","''",$HTTP_POST_VARS['gname']);
$gamename = preg_replace(array('#&(?!(\#[0-9]+;))#', '#<#', '#>#'), array('&', '<', '>'),$gamename);
$gamescore = intval($HTTP_POST_VARS['gscore']);
//Get Game ID
$row = $db->sql_fetchrow($db->sql_query("SELECT game_id from ".$prefix."_bbgames WHERE game_scorevar='$gamename'"));
$gid = intval($row['game_id']);
$ThemeSel = get_theme();
echo "<LINK REL=\"StyleSheet\" HREF=\"themes/$ThemeSel/style/style.css\" TYPE=\"text/css\">\n\n\n";
echo "<form method='post' name='ibpro_score' action='modules.php?name=Forums&file=proarcade&valid=X&gpaver=GFARV2'>";
echo "<input type=hidden name='vscore' value='$gamescore'>";
echo "<input type=hidden name='gid' value='$gid'>";
echo "</form>";
Tylko w takim przypadku istnieje możliwość zmiany nagłówków HTTP(czyt. zmiany score)
np. dodatkiem do firefoxa tamper data
Chciałbym wiedzieć co mogę zrobić, aby nie było możliwości zmiany tych żądań....
Próbowałem zrobić, aby wynik który uzyska się w grze był kodowany w bas64, i wtedy gdyby ktoś chciał modyfikować ten nagłówek, to musiałby podać tam swój wynik w base64, a nie sądzę, aby na to wpadł.
Ale niestety nie potrafię zrobić, aby we fleshu był kodowany wynik w bas64..
Co zrobić, aby uniemożliwić modyfikację żądań HTTP