php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 20-04-2011, 14:46
RKAN
 Registrierter Benutzer
Links : Onlinestatus : RKAN ist offline
Registriert seit: Nov 2009
Beiträge: 9
RKAN befindet sich auf einem aufstrebenden Ast
Standard Memory Spiel | Sicherheit

Hallo,

Ich werde demnächst ein Memory Spiel programmieren. Grundsätzlich weiß ich schon wie ich das ca. Umsetzen will. Die Frage für mich ist, ob man die Daten (Zeit, Versuche) einfach manupulieren kann bzw. wie kann ich mich dagegen Schützen.

Ansatz:
Grundsätzlich wird das ganze Spiel (Karten aufbauen,...) mit JavaScript gemacht (was sich ja dafür prima eignet) nur die Daten werden dann in die Datenbank gespeichert. (Zeit, Versuche...)

Ich hab mir das so vorstellt:
1) Besucher kommt auf Seite, muss zuerst Formular ausfüllen (Name), nachdem Absenden der Daten beginnt das Spiel (Muss während desen den Namen merken, einfach Daten in JS Variable schreiben?)

2) Während das Spiel läuft die Zeit und der rest funktoniert mit JS (gleiche paare finden,...)

3) Nachdem alle Paare richtig gefunden worden sind, will ich eben die Zeit und den namen in die Datenbank speichern. (Für die Highscore liste)

Wo muss ich wie aufpassen das die Zeit nicht manipuliert (wie auch immer) werden kann?

Da es ein Gewinnspiel wird und die Top 3 einen Preis dafür gewinnen kann ist mir dieses Thema ziemlich wichtig. Deswegen bin ich über jeden Hinweis bzgl. dem Thema Manipulation oder Ansatz dankbar.

Ps.: Ich hoffe ich konnte mich klar ausdrücken =)

mfg
RKAN
Mit Zitat antworten
  #2 (permalink)  
Alt 20-04-2011, 14:56
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Ich würde mir erst Mal keinen Kopf um die Zeit machen sondern um den Rest. Denn alles, was per JavaScript geschieht, lässt sich sehr leicht manipulieren. Und du glaubst gar nicht, wie einfallsreich Leute werden können, wenn etwas zu gewinnen gibt.

Du musst also den jeweils aktuellen Spielstand immer serverseitig speichern (z.B. per Ajax. Und clientseitig darf es keinen Hinweis darauf geben, was möglicherweise unter den Karten ist. Hast du das schon bedacht?

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 20-04-2011, 15:12
RKAN
 Registrierter Benutzer
Links : Onlinestatus : RKAN ist offline
Registriert seit: Nov 2009
Beiträge: 9
RKAN befindet sich auf einem aufstrebenden Ast
Standard

Hallo Kropff,
vielen Dank schonmal. Mir war schon von Anfang an klar das JS mir paar Kopfschmerzen zubereiten wird. Aber dennoch will ich das ganze erfolgreich umsetzen.

Hab nicht richtig herauslesen können was du mit "den jeweils aktuellen Spielstand immer serverseitig speichern" genau meinst (welche Daten speichern). Meinst du das ich jede Sekunde eine Ajax Abfrage an den Server schicken soll? Wenn du mir das etwas visuell erklären würdest, würde ich es besser verstehen.

Die Karten kommen aus einem Array, die werden dupliziert und gemischt auf das Feld gelegt. Da habe ich auch nicht wirklich eine Ahnung, wollt eigentlich die Bilder verstecken und erst bei einem Klick werden sie soszusagen umgedreht. Aber ich glaub das würde sich auch leicht manupulieren lassen....hmm schwieriges Thema.

Würd mich freuen wenn du mir die richtige Richtung zeigst =)


Ps.: Finde deine Seite echt informativ, alles verständlich geschrieben was man heutzutage schwer findet. Hab schon vieles daraus gelernt auch vielen vielen Dank dafür =)

Geändert von RKAN (20-04-2011 um 15:15 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 20-04-2011, 15:19
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Clientseitig darf nichts, aber auch garnichts gespeichert sein. Da hast nur zugedeckte Karten. Wenn jetzt jemand auf eine klickt, dann sendest du einen Ajax-Request ab. Z.B. so:

Karte Karte Karte
Karte Karte Karte
Karte Karte Karte

Die bekommen einfach nur eine Nummer, also meinetwegen von 1 bis 9. Und die übermittelst du. Dann sagt dir das PHP-Javascript, um welche es sich handelt. Dann klickt der nochmal auf eine Karte, Nummer übergeben, das PHP-Script sagt, welche Karte und ob die übereinstimmt. Und so weiter und so fort.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #5 (permalink)  
Alt 20-04-2011, 16:02
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Aber selbst das lässt sich umgehen. Nachdem AJAX-Abfragen nichts anderes als normale HTTP-Requests sind, können die auch von einem selbstprogrammierten Tool stammen. Jetzt braucht man nur noch einen Bot programmieren, der "spielt", und einen halbwegs durchdachten Algorithmus (sollte bei Memory nicht wirklich aufwändig sein) der die dafür benötigte Zeit und Anzahl an Request aufs Minimum reduziert.

Selbst wenn man nach jedem Request eine Zwangspause einfügt ist man mit dieser Methode immer noch schneller als jeder menschliche Spieler.

Geändert von h3ll (20-04-2011 um 16:31 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 20-04-2011, 16:12
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Stimmt. Aber es erschwert die Sache schon mal. Und darum geht es. Der zu betreibende Aufwand sollte in keinerlei Verhaltnis zum möglichen Gewinn stehen.

Beispiel (ein etwas dummes, zugegeben)
1. Preis Einkaufsgutschein bei Rewe für 50€
2. Preis Einkaufsgutschein bei Rewe für 30€
3. Preis Einkaufsgutschein bei Rewe für 10€

Macht zusammen 90 Öcken. Wenn man nun dafür etwa 40 Stunden Arbeit investieren muss, um das System zu umgehen, so lohnt sich das einfach nicht. Außerdem war die von mir beschriebene Vorgehensweise nur der erste Schritt. Da muss man noch etliche Zusatzmaßnahmen einbauen.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #7 (permalink)  
Alt 20-04-2011, 16:32
RKAN
 Registrierter Benutzer
Links : Onlinestatus : RKAN ist offline
Registriert seit: Nov 2009
Beiträge: 9
RKAN befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Kropff Beitrag anzeigen
Clientseitig darf nichts, aber auch garnichts gespeichert sein. Da hast nur zugedeckte Karten. Wenn jetzt jemand auf eine klickt, dann sendest du einen Ajax-Request ab. Z.B. so:

Karte Karte Karte
Karte Karte Karte
Karte Karte Karte

Die bekommen einfach nur eine Nummer, also meinetwegen von 1 bis 9. Und die übermittelst du. Dann sagt dir das PHP-Javascript, um welche es sich handelt. Dann klickt der nochmal auf eine Karte, Nummer übergeben, das PHP-Script sagt, welche Karte und ob die übereinstimmt. Und so weiter und so fort.

Peter
Ok jetzt weiß ich schon in welche Richtung ich denken muss, werd das mal in Praxis umsetzen und testen. Nur die Karten kan ich ja nur mit CSS verdecken oder? Wäre ja wieder in einiger massen umgehbar ne?

Ich glaub da muss ich eher auch die Karten in die Datenbank speichern und sie mit Nummern versehen...und vom Client aus werden nur die Nummern mitgeschickt und anhand dessen weiß ich welche Karte es ist und kann sie anzeigen. (Das meinst du wahrscheinlich mit "Clientseitig darf nichts, aber auch garnichts gespeichert sein")

@h3ll
Grundsätzlich will/kann ich das System sowieso nicht 100% sicher machen. Es soll halt einen gewissen Schutz gegen die einfachen manipulations Versuche bieten.

Zitat:
Zitat von Kropff Beitrag anzeigen
Außerdem war die von mir beschriebene Vorgehensweise nur der erste Schritt. Da muss man noch etliche Zusatzmaßnahmen einbauen.
Kannst du mir da auch Hinweise geben? Damit ich mich vorher schlau machen kann?
Mit Zitat antworten
  #8 (permalink)  
Alt 20-04-2011, 16:34
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Kropff Beitrag anzeigen
Wenn man nun dafür etwa 40 Stunden Arbeit investieren muss, um das System zu umgehen, so lohnt sich das einfach nicht.
Kommt immer auf die Fähigkeiten des Programmierers an. Ich kenn jemanden, der hat schon aufwändige Flash-Spielchen in weniger als einer Stunde gehackt, bei denen man deutlich größere Wertpreise gewinnen konnte (zB. moderne Handys). Allerdings hat er den Sachverhalt hinterher immer aufgeklärt, weil es ihm nicht um den Gewinn ging. Für den war das so eine Art Sport. Der hat zig solcher Spiele und Wettbewerbe gehackt und hätte theoretisch Tausende Euro damit abräumen können.
Mit Zitat antworten
  #9 (permalink)  
Alt 20-04-2011, 16:41
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von RKAN Beitrag anzeigen
Nur die Karten kan ich ja nur mit CSS verdecken oder?
Nö, du änderst den Pfad des Bildes per JavaScript.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #10 (permalink)  
Alt 20-04-2011, 16:45
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von RKAN Beitrag anzeigen
Kannst du mir da auch Hinweise geben?
Solche Maßnahmen gibt es wie Sand am Meer. Sessions (brauchst du eh), Hashwerte, zusätzliche Cookies, Anmeldung erst nach Eingabe einer Mail, die man bestätigen muss und was weiß ich nicht. Da sind deiner Phantasie keine Grenzen gesetzt.
Zitat:
Zitat von RKAN Beitrag anzeigen
Damit ich mich vorher schlau machen kann?
Hättest du das nicht schon vor deinem Thread machen sollen?

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #11 (permalink)  
Alt 20-04-2011, 16:50
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
Kommt immer auf die Fähigkeiten des Programmierers an. Ich kenn jemanden, der hat schon aufwändige Flash-Spielchen in weniger als einer Stunde gehackt, bei denen man deutlich größere Wertpreise gewinnen konnte (zB. moderne Handys).
Tja, solche Leute gibt es halt. Das hängt imho aber immer auch vom Auftraggeber des Spiels ab. Wenn der das richtig sicher haben möchte, dann muss er dafür auch bezahlen. Und da hapert es dann meistens schon. Wir haben Spiele immer so programmiert, dass man ein Ziel erreichen musste. Und wer das geschafft hatte, konnte an einer Auslosung teilnehmen. War bombensicher, da das jeder Dödel irgendwann schaffte.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #12 (permalink)  
Alt 20-04-2011, 17:11
RKAN
 Registrierter Benutzer
Links : Onlinestatus : RKAN ist offline
Registriert seit: Nov 2009
Beiträge: 9
RKAN befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Kropff Beitrag anzeigen
Solche Maßnahmen gibt es wie Sand am Meer. Sessions (brauchst du eh), Hashwerte, zusätzliche Cookies, Anmeldung erst nach Eingabe einer Mail, die man bestätigen muss und was weiß ich nicht. Da sind deiner Phantasie keine Grenzen gesetzt.

Hättest du das nicht schon vor deinem Thread machen sollen?

Peter
Ok hab jetzt mit den zusätzlichen Maßnahmen nicht an Sessions,..etc. gedacht, natürlich kommen die auch noch rein...dachte du meinst evtl. etwas anderes damit.

Ich hab mich natürlich vorher bissi schlau gemacht, nur es gibt eben manche Themen die man nur mit den richtigen Suchbegriffen findet oder einen kleinen Schubser in die Richtung braucht.

Ich werd mich mal am Abend hinsetzen und das ganze mal in die Praxis umsetzen und hier noch aufjedenfall noch reinschreiben Damit ich eine Meinung von den Profis habe =)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Spiel problem timie PHP Developer Forum 4 13-07-2006 23:30
wer spiel mit der DB rum asp2php Out of Order 2 12-02-2006 11:28
[Script] Find Pairs / Memory Spiel svenja1982 Apps und PHP Script Gesuche 4 04-02-2004 11:28
Spiel mit Script verändern?? Gogo Apps und PHP Script Gesuche 5 17-02-2003 14:02

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:19 Uhr.