php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.04.2005, 10:44  
Gast
 
Beiträge: n/a
Standard Highscore gegen Cheater schützen.

Hi,

ich habe ein kleines Game in JavaScript Programmiert. Und die Highscore soll jeder in die Datenbank eintragen können.

Jetzt soll allerdings nicht jeder der bisschen Ahnung hat einfach einen Parameter übergeben und sich so in die Highscore eintragen. Wie kann ich die Highscores den vor solchen Cheatern schützen?

Auf der 1. Seite ist das Spiel. Von dort werden paar Parameter an die 2. Seite Übergeben und dort wird der insert gemacht.


Würde es genügen den REFERER abzufragen? Wenn ja wie funktioniert das?
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.04.2005, 10:51  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

12.3. Warum ist es schlecht, mit dem Referer zu arbeiten?
http://www.php-faq.de/q/q-http-referer.html

vieleicht bissel mehr code wie das ganze aufgebaut ist, wie du die variablen übergibst. ne idee wäre das ganze über sessions zu machen. aber alles lässt sich manupulieren :P
robo47 ist offline   Mit Zitat antworten
Alt 13.04.2005, 11:12  
Gast
 
Beiträge: n/a
Standard

OK hier mehr input:

bei dem spiel werden immer 25 runden gespielt. mal gewinnt man mal verliert man.

die anzahl der gewonnenen und verlorenen spiele werden in hidden felder geschrieben. zusätzlich gibt es noch ein input feld in dem man den namen einträgt.

im moment habe ich noch ein hidden feld in das [gewonnene spiele]-[verlorene spiele] eingetragen wird.

*.php?pwin=15&cwin=10&scoreok=5&name=klaus

auf der php seite wird nun pwin-cwin mit scoreok verglichen. wenn dies richtig ist dann wird erst eingetragen.

wer sich allerdings das javascript genauer anguckt kommt schnell hinter diese sperre. deswegen würde ich gerne ein bessere sperre benutzen, weiß aber nicht wie!
  Mit Zitat antworten
Alt 13.04.2005, 11:17  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von peterpeter
wer sich allerdings das javascript genauer anguckt kommt schnell hinter diese sperre. deswegen würde ich gerne ein bessere sperre benutzen, weiß aber nicht wie!
Solche Daten gehören in die Session und nicht in den URL, weil sie dort vom User beliebig fälschbar sind.
  Mit Zitat antworten
Alt 13.04.2005, 11:23  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von meikel
Solche Daten gehören in die Session und nicht in den URL, weil sie dort vom User beliebig fälschbar sind.
Sessions wollte ich vermeiden.

Und was ist wenn ich nur Postparameter zulasse? Bei meinen geringen Besucherzahlen dürfte das ausreichen. Wenn ich nicht dabei schreibe, das Post Parameter gefordert sich kommt da eh keiner drauf. Muss ja nicht 100% sicher sein. Wer sich dafür so viel Arbeit macht der solls halt machen...

Aber wie Überprüfe ich ob eine Variable ein Postparameter ist?
  Mit Zitat antworten
Alt 13.04.2005, 11:28  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von peterpeter
Zitat:
Zitat von meikel
Solche Daten gehören in die Session und nicht in den URL, weil sie dort vom User beliebig fälschbar sind.
Sessions wollte ich vermeiden.
Unfug. Sessions sind für Dich die einzige Möglichkeit, Manipulationen durch den User zu verhindern.

Zitat:
Aber wie Überprüfe ich ob eine Variable ein Postparameter ist?
Post steht bekanntlich in $_POST.

Aber auch das hilft nix gegen Manipulationen:
12.11. Prüfe importierte Parameter. Traue niemandem
http://www.php-faq.de/q/q-sicherheit-parameter.html
Zitat:
Es gelten daher die folgenden Empfehlungen:

Jede Form von Ping-Pong, also Wert-Weitergabe durch GET-Parameter, HIDDEN-Variablen und dergleichen ist zu vermeiden. Auch durch Codierung der Werte ist hier nichts zu erreichen.

Stattdessen sind Sessionvariablen zu verwenden. Nur die Session-ID wird von einer Seite an eine andere Seite weitergereicht.

Keinesfalls darf ein Programm Werte aus einer GET, POST oder COOKIE-Quelle direkt verwenden. Jeder externe Wert ist einer Plausibilitätsprüfung zu unterziehen, bevor er verwendet wird (Genau das wird in Wie unterscheide ich böse Variablen von guten? näher beschrieben).

Validierung von Eingabewerten muss serverseitig durch PHP geschehen. JavaScript-Validatoren sind nicht vertrauenswürdig: Der Browser des Anwenders führt diese Validatoren möglicherweise nicht aus, auch dann, wenn er sich durch die User-Agent-Zeile als JavaScript-fähiger Browser identifiziert. Ebenso muss angenommen werden, dass die Referer-Header des Browsers möglicherweise gefälscht sind. Man kann nicht annehmen, dass ein Zugriff tatsächlich von einer bestimmten vorhergehenden Seite hierher vermittelt wurde.

Zusammenfassend: Traue niemandem. Validiere allen Input oder stirb.
  Mit Zitat antworten
Alt 13.04.2005, 11:59  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von meikel
Post steht bekanntlich in $_POST.
Wenn ich jetzt eine Variable namens "pwin" übergebe. wie Prüfe ich diese ab?


Code:
if($pwin == $_POST)
Richtig so?
  Mit Zitat antworten
Alt 13.04.2005, 12:01  
Erfahrener Benutzer
 
Benutzerbild von JEGO
 
Registriert seit: 01.12.2003
Beiträge: 2.555
PHP-Kenntnisse:
Anfänger
JEGO wird schon bald berühmt werden
Standard

PHP-Code:
<?php
$_POST
['pwin'];
?>
__________________
Gruß JEGO

Ein PHP Script tut, was Du schreibst, nicht was Du willst.
JEGO ist offline   Mit Zitat antworten
Alt 13.04.2005, 12:04  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

vieleicht mal anschauen:

register_globals
http://www.phpfriend.de/ftopic26569.html
-> lesen, verstehen, umsetzen !!
robo47 ist offline   Mit Zitat antworten
Alt 13.04.2005, 12:47  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Zitat:
Zitat von meikel
Sessions sind für Dich die einzige Möglichkeit, Manipulationen durch den User zu verhindern.
Wenn das Spiel in Javascript geschrieben ist wird auch das keine Sicherheit bringen, denn so hat jeder die Möglichkeit, sich den clientseitigen Teil des Spiels so zurechtzuprogrammieren, dass er mehr Punkte bekommt.
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Highscore mit PHP Torley PHP Tipps 2008 7 27.02.2008 15:21
Average bei Highscore - Mittendrin platzierung cyberholic PHP-Fortgeschrittene 13 24.02.2008 13:45
Mein Flash Highscore - Versucht ihn zu knacken! El Barto Off-Topic Diskussionen 45 02.09.2005 15:46
snake highscore script ... von jedem user nur beste score Madden PHP Tipps 2005-2 15 11.06.2005 13:53
Highscore Datenbanken 5 28.02.2005 11:10
highscore PHP Tipps 2005 7 03.02.2005 19:57
[Erledigt] Online Highscore PHP Tipps 2004-2 2 18.11.2004 15:34
highscore sichern PHP Tipps 2004-2 3 17.11.2004 19:40
HighScore liste erstellen PHP Tipps 2004 4 08.07.2004 22:37

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
highscore cheaten, highscore code html, highscore list online php, post variable vor manipulation schützen php, highscores javascript php, php $_post highscore manipulation, flash highscore cheat sicher, php highscore schützen, highscore vor manipulation schützen, durch cheater schützen, java php online highscore, snake php mit externe highscore, php script highscore, javascript spiel highscore absichern, javascript highscore schützen, javascript highscore-script, javascript highscore to php, php highscore liste script, highscore java arraylist erstellen, flash php highscore absichern

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.