1Danke
ERLEDIGT
JA
JA
ANTWORTEN
10
10
ZUGRIFFE
669
669
EMPFEHLEN
-
19.03.12 17:17 #1
Mitglied Gold
- Registriert seit
- Apr 2005
- Ort
- Mainz
- Beiträge
- 125
Hallo,
ich hab mir vor langer Zeit mal ein "Klickspiel" zusammengebastelt mit Javascript usw. Es ist ein einfaches Div was man anklicken muss. Es wird dann eine Counter-Variable +1 hochgezählt. Man hat 15 Sekunden Zeit soviele Klicks wie möglich zu schaffen. So. Nun stellt sich mir das Problem, dass man mit Firebug z.B. einfach statt +1 +9999 schreiben kann und so das Spiel auf sehr einfache Art und Weise manipulieren kann. Wie kann ich mich vor solchen Manipulationen schützen?
Sinnlos aber hier ein Codebeispiel :
Wie gesagt, jeder kann einfach statt +1 ein +999 drausmachen. Das ist doof! Vielleicht ist die Antwort ja total einfach und ich komm einfach ncht drauf?Code :1 2 3 4 5 6 7 8
var counter = 0; function clicket() { counter = counter + 1; if(counter == 1) { starttime(); } } usw...
LG
-
19.03.12 17:29 #2
Mitglied Weizenbier
- Registriert seit
- Sep 2009
- Beiträge
- 2.662
Das ist nicht möglich.
Ausführlich: Der gesamte Code läuft im Browser des Besuchers, da hast du überhaupt keinen Einfluss drauf. Das ist bei jedem Spiel, auch außerhalb des Browsers, genauso. Nur dass sich Skript Sprachen leichter manipulieren lassen, als z.B. Assembler. Aber ich kenne auch Hardcore-Programmierer, die mittels Assembler Spiel-Clients umschreiben.
Bei Multiplayer-Spielen hilft es nur, dass du die Spiellogik auf den Server verlagerst. Bei Nutzereingaben musst du dann mit gewissen Heuristiken versuchen zu Beurteilen, ob die Eingabe von einem Mensch oder einer Maschine gemacht wurden.
Wenn das allerdings so einfach wäre, gäbe es in CS, TF2, WOW, etc. keine Cheater mehr.
Edit: Übrigens brauchst du kein Firebug dazu. Einfach in die Adressleiste
Code :1
javascript:for(var i = 0; i < 1000; i++) clicket();
-
19.03.12 17:33 #3
Man kann es sogar noch mehr vereinfachen und verallgemeinern: grundsätzlich ist es nicht möglich, dich vor Manipulationen zu schützen. Die Frage ist nur, wie schwer es ist, dein Skript zu manipulieren, und wieviele Menschen dazu in der Lage sind, dein Skript dementsprechend zu manipulieren.
Ich mag:
- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
19.03.12 17:34 #4
Hi,
alles was Client-seitig läuft kann manipuliert werden. Auch das Absenden der Daten an den Server kann am Schluss abgefangen und verändert werden.
Kenne das Problem auch und soweit ich das sehe gibt es dagegen nur einen Schutz: Das ganze so komplex machen, dass der Cheater die Lust verliert sich das alles anzusehen und zu entwirren.
Mach das ganze einfach so unübersichtlich wie möglich, viele Funktionen die keine logischen Namen haben. Also all das was man als "schlechten Programmierstil" auf jeden Fall vermeiden sollte
Variablen und Funktionen mit den Bezeichnern "a", "b", "xvcj" usw. Am Ende noch den / die Click-Counter irgendwie signieren / verschleiern und dann erst an den Server schicken.
Zwischendrin auch mal ein paar "Dummy-Anfragen" an den Server per Ajax absetzen die ein paar Zahlen / Buchstaben zurückgeben und die auch noch irgendwie einbauen.
Dei Frage ist halt, inwiefern sich der Aufwand lohnt. Die Wartbarkeit ist dann auch wieder ein weiterer Punkt
Grüße,
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
19.03.12 17:44 #5
Schau dir mal diese Seite hier an: die minimiert die Größe deines Quelltextes und verändert auch die Namen der Funktionen sehr weit. Außerdem sieht dein Quelltext danach sehr unübersichtlich aus.
Ich mag:
- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
19.03.12 17:49 #6
Mitglied Gold
- Registriert seit
- Apr 2005
- Ort
- Mainz
- Beiträge
- 125
ja danke, das hab ich mir auch grad gedacht, lücken raus, alles in eine zeile und am besten in eine jquerydatei irgendwo in die mitte packen. da hat keiner bock reinzuschauen
werd ich mal ausprobieren. naja wenn ich irgendwo ne lücke finde in der jquery datei. die ist ja auch pervers unübersichtlich.
-
19.03.12 17:58 #7
Naja, du kannst doch die übersichtliche Version von jQuery nutzen und dann dort eine Lücke suchen, an der du dein Skript einfügst. Danach kannst du doch das Ganze zusammen minimieren.
Ich mag:
- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
19.03.12 18:39 #8
Mitglied Weizenbier
- Registriert seit
- Sep 2009
- Beiträge
- 2.662
Da kann ich noch http://www.iteral.com/jscrush/ empfehlen.
-
19.03.12 19:32 #9
Mitglied Gold
- Registriert seit
- Apr 2005
- Ort
- Mainz
- Beiträge
- 125
ja aber wie funktioniert sowas? er fügt einfach sinnlose nichtsmachende funktionen hinzu? z.B. aus
wird dannCode :1
ich bin ein javascript code
Code :1
_='ich bin ein javascript code';for(Y=0;$=''[Y++];)with(_.split($))_=join(pop());eval(_)
da kriegt man doch angst wenn man dann viele zeilen code verschleiern möchte und am ende hast du dann 1000 zeilen nonsense, den sich kein schwein anguckt und irgendwo ist da nen wurm drin
-
19.03.12 21:17 #10
Mitglied Gold
- Registriert seit
- Apr 2005
- Ort
- Mainz
- Beiträge
- 125
irgendwie steh ich grad auf dem schlauch. ich hab mein code nun irgendwo im jquery versteckt, natürlich nicht innerhalb einer function sondern irgendwo dazwischen. aber es lässt sich nicht mehr normal ausführen. das scheint doch nicht so einfach zu sein wie angenommen. dachte das wäre leicht unkompliziert...
--edit
eigentlich schwachsinn das noch verstecken zu wollen nachdem man das mit dem hier http://www.iteral.com/jscrush/ komplett unkenntlich machen kann
also eigentlich abgeschlossenes thema
Geändert von deintag85 (19.03.12 um 21:33 Uhr)
-
19.03.12 21:50 #11
Jetzt mal ernsthaft... Das Zeug mit dem jscrusher funktioniert?! Da kommt so ein "bullshit" raus, wovon ich selber nicht mal annähernd etwas verstehe, und das soll funktionieren? Genial.
€: Also eins steht fest. jQuery packt er nicht.
Geändert von Lime (19.03.12 um 21:56 Uhr)
Ähnliche Themen
-
Firebug und CMS Entwicklung. Firebug öffnet sich automatisch
Von Jan-Frederik Stieler im Forum HTML-EditorenAntworten: 4Letzter Beitrag: 29.01.11, 19:39 -
Nicht gesetzten Wert mit Firebug oder WebDevToolbar ermitteln
Von Jan-Frederik Stieler im Forum Javascript & AjaxAntworten: 6Letzter Beitrag: 09.01.09, 14:34 -
MySQL Abfragen schützen, Manipulation unterbinden
Von Marius Heil im Forum PHPAntworten: 3Letzter Beitrag: 02.08.07, 22:33 -
script durch lizenz schützen (opensource oder freeware)
Von Rpgrafx im Forum PHPAntworten: 28Letzter Beitrag: 27.10.05, 18:12




Zitieren
Login