Hallo,
Also ich habe ein eigenes Browsergame leuft gut nur ab und an gibts halt auch eigenartige Spieler, egal also zu meiner Frage.
Ich habe nun einene Spieler der hat nen bot (vermute ich) geschrieben denn:
Seit 7:00 in der Früh bis um 8:50 in der Früh hat er jede Minute 1nen Fisch am Marktplatz verkauft.
Kann mir nicht vorstellen wie er das händisch macht das es immer exakt gleich ist.
Diese Daten habe ich weil ich alle eingaben immer speichere.
Nun zu meiner Frage, ich üer prüfe immer:
das die Variable > 0 ist also die eingabe
Das sie nicht lehr ist != ""
und das sie niht größer ist als was er besitzt also eingabe <= besitz
Doch wie kann ich nun noch absichern das soetwas was er macht nichmer vorkommt? Ich weis einfach nichtmer weiter.
mfg,
Dorgo
PS: Bitte um schnelle Hilfe.
Editt:// Wie ich gerade sehe hat er noch bei einer Dropbox wo man zwischen 1 und 2 Stunden Arbeiten gehen welen kann 8 Stunden genommen (gibts aber ned) nun habe ich derzeit mal eingebaut das es <= 2 sein muss die auswahl aber gibts da noch ne andere möglichkeit auch?
mfg,
Dorgo
Absicherung von Eingabefeldern!!
gepostet vor 18 Jahre, 1 Monat von Dorgo
gepostet vor 18 Jahre, 1 Monat von Klaus
Grundsätzlich gilt: Alle Eingaben die vom User kommen sind unheimlich böse.
Also wenn du eine ganze Zahl erwartest versteht sich ein $eingabe = (int) $_POST['eingabe'] von selbst. Dann musst du noch checken ob die Zahl tatsächlich erlaubt ist usw.
Wenn du sowas nicht in deinem Spiel hast, dann kannst du von Glück reden dass es noch läuft. Fundiertes Wissen über sichere PHP-Programmierung ist Pflicht!
Zu der Bot Sache: Da kannst du z.B. eine Zeit zwischen Angeboten festlegen, Captchas einbauen und natürlich an dem Spieler ein Exempel statuieren, obwohl du hier einen Glückstreffer hast.
Also wenn du eine ganze Zahl erwartest versteht sich ein $eingabe = (int) $_POST['eingabe'] von selbst. Dann musst du noch checken ob die Zahl tatsächlich erlaubt ist usw.
Wenn du sowas nicht in deinem Spiel hast, dann kannst du von Glück reden dass es noch läuft. Fundiertes Wissen über sichere PHP-Programmierung ist Pflicht!
Zu der Bot Sache: Da kannst du z.B. eine Zeit zwischen Angeboten festlegen, Captchas einbauen und natürlich an dem Spieler ein Exempel statuieren, obwohl du hier einen Glückstreffer hast.
gepostet vor 18 Jahre, 1 Monat von KEEN
Eine Methode die nicht sicher ist, aber es dem Botuser deutschlich schwerer macht ist das dynamische Umbenennen von Formularfeldern. Dann muss er davor immer erst feststellen, wie die Variable die er schickt heißen muss. Wenn er einen Mouse Bot nutzt, hilft das aber nichts auch nichts. Captchas mag ich nicht, bringen viel gegen Bots, stören aber auch die User. Das Userfreundlichste sind statistische Methoden zum aufspüren von Bots. Das macht viel Arbeit aber bringt sehr viel ohne den ehrlichen User zu nerven.
gepostet vor 18 Jahre, 1 Monat von Dorgo
Hallo,
OK danke mal für die Hilfe also wenn ich nun einbaue:
$eingabe = (int) $_POST['eingabe']
also das habe ich noch nicht eingebaut, derzeit habe nun nun alles Durch dropdown boxen ersetzt nun treten weniger bugs auf (zum glück).
Also um das nun nochmal für mich verstendlich zu machen...
Also mal prüfen ob die Zahl (isset) da ist dann != "" ist dann < 0 ist und dann noch $eingabe = (int) $_POST['eingabe'] .
Ok und das wäre ja mal ned so schlecht.
Nun zu den anderen sachen...
Hm ok mal was neues, weis ned so genau wie das geht werd emich aber einmal erkunden, KEEN meinte ja wäre nicht soo gut werde halt mal schaun.
Dann noch dazu:
Ähm wie kann ich mir das forstellen zum realisieren? Habe da noch wenig erfahrung in solchen absicherungen eben, ich habe eben die grundkentnisse und so aber eben ned das top level was ich breuchte *leider*
Vieleicht kann ich dich ja mal im ICQ Adden meine ICQ Nummer ist: 230-907-152 (Loin)
Und was meinst du damit:
obwohl du hier einen Glückstreffer hast.
Meinst das ich da nen bech habe das er kam oder das ich nen klück habe das es nich da ist mein game...
mfg,
Dorgo
OK danke mal für die Hilfe also wenn ich nun einbaue:
$eingabe = (int) $_POST['eingabe']
also das habe ich noch nicht eingebaut, derzeit habe nun nun alles Durch dropdown boxen ersetzt nun treten weniger bugs auf (zum glück).
Also um das nun nochmal für mich verstendlich zu machen...
Also mal prüfen ob die Zahl (isset) da ist dann != "" ist dann < 0 ist und dann noch $eingabe = (int) $_POST['eingabe'] .
Ok und das wäre ja mal ned so schlecht.
Nun zu den anderen sachen...
Zu der Bot Sache: Da kannst du z.B. eine Zeit zwischen Angeboten festlegen, Captchas einbauen und natürlich an dem Spieler ein Exempel statuieren, obwohl du hier einen Glückstreffer hast.
Hm ok mal was neues, weis ned so genau wie das geht werd emich aber einmal erkunden, KEEN meinte ja wäre nicht soo gut werde halt mal schaun.
Dann noch dazu:
Eine Methode die nicht sicher ist, aber es dem Botuser deutschlich schwerer macht ist das dynamische Umbenennen von Formularfeldern.
Ähm wie kann ich mir das forstellen zum realisieren? Habe da noch wenig erfahrung in solchen absicherungen eben, ich habe eben die grundkentnisse und so aber eben ned das top level was ich breuchte *leider*
Vieleicht kann ich dich ja mal im ICQ Adden meine ICQ Nummer ist: 230-907-152 (Loin)
Und was meinst du damit:
obwohl du hier einen Glückstreffer hast.
Meinst das ich da nen bech habe das er kam oder das ich nen klück habe das es nich da ist mein game...
mfg,
Dorgo
gepostet vor 18 Jahre, 1 Monat von Crasher
Hi
wegen der Datenprüfung mach ich das immer so (wenn es ein int sein soll)
$var = (is_numeric($_POST['eingabe'])) ? intval(abs($_POST['eingabe'])) : 0;
is_numeric() prüft erstmal ob da ne Zahl kommt wenn es keine ist wird var 0
dann machen wir die Zahl erstmal zu ner positiven zahl (abs()) und dann wenn es nen float ist machen wir mit intval() noch nen int draus hab bis jetzt noch kein Problem. Die Variable musste halt noch prüfen ob sie in dem bereich liegt in dem sie liegen darf aber das machste ja jetzt schon.
wegen des Bots würd ich sicherlich auch zu Captchas greifen.
Crasher
wegen der Datenprüfung mach ich das immer so (wenn es ein int sein soll)
$var = (is_numeric($_POST['eingabe'])) ? intval(abs($_POST['eingabe'])) : 0;
is_numeric() prüft erstmal ob da ne Zahl kommt wenn es keine ist wird var 0
dann machen wir die Zahl erstmal zu ner positiven zahl (abs()) und dann wenn es nen float ist machen wir mit intval() noch nen int draus hab bis jetzt noch kein Problem. Die Variable musste halt noch prüfen ob sie in dem bereich liegt in dem sie liegen darf aber das machste ja jetzt schon.
wegen des Bots würd ich sicherlich auch zu Captchas greifen.
Crasher
gepostet vor 18 Jahre, 1 Monat von Benj
Wenn sich User durch Bots Vorteile verschaffen können, ist dein Spielkonzept nicht ausgereift.
Über dieses thema haben wir ja vor kurzem hier Diskutiert.
Zu der sache mit den Eingaben, musst du dir im Klaren sein, dass alle Eingaben, die über get oder post gesendet werden, falsch sein können.
Sie müssen also erst auf den richtigen Variabeltypen und anschliessend auf den richtigen Wertebereich hin überprüft werden.
Über dieses thema haben wir ja vor kurzem hier Diskutiert.
Zu der sache mit den Eingaben, musst du dir im Klaren sein, dass alle Eingaben, die über get oder post gesendet werden, falsch sein können.
Sie müssen also erst auf den richtigen Variabeltypen und anschliessend auf den richtigen Wertebereich hin überprüft werden.
gepostet vor 18 Jahre, 1 Monat von Klaus
Original von Crasher
Hi
wegen der Datenprüfung mach ich das immer so (wenn es ein int sein soll)
$var = (is_numeric($_POST['eingabe'])) ? intval(abs($_POST['eingabe'])) : 0;
is_numeric() prüft erstmal ob da ne Zahl kommt wenn es keine ist wird var 0
Das kannst du dir sparen, denn beim umwandeln werden Strings automatisch zu 0, es sei denn am Anfang des Strings steht eine Zahl.
So kannst du die 0 leicht abgreifen und eine Fehlermeldung schmeißen.
gepostet vor 18 Jahre, 1 Monat von Dorgo
Hallo,
Also wirkliche vorteile macht er sich ja ned ob er nun 100 Fisch aufeinmal einzahlt oder durch nen script jede min 1 Fisch ist ja für Ihn egal^^, das macht er ja nur um mich zu nerven...
Ok also ich werde dies einmal einbauen.
mfg,
Dorgo
Also wirkliche vorteile macht er sich ja ned ob er nun 100 Fisch aufeinmal einzahlt oder durch nen script jede min 1 Fisch ist ja für Ihn egal^^, das macht er ja nur um mich zu nerven...
Ok also ich werde dies einmal einbauen.
mfg,
Dorgo
gepostet vor 18 Jahre, 1 Monat von Blabbo
Was machst du dir nen Stress, ihm den bot zu verhindern, wenn er ihm eh keinen Vorteil bringt.
Ansonsten würd ich sagen, lösche den User einfach mit der Begründung, dass Bots nicht erlaubt sind in deinem Spiel (wenn das in deinen Regeln steht).
Wo ist das Problem?
Meinst das ich da nen bech habe das er kam oder das ich nen klück habe das es nich da ist mein game...
ohne Worte ...
Ansonsten würd ich sagen, lösche den User einfach mit der Begründung, dass Bots nicht erlaubt sind in deinem Spiel (wenn das in deinen Regeln steht).
Wo ist das Problem?
Original von Dorgo
Meinst das ich da nen bech habe das er kam oder das ich nen klück habe das es nich da ist mein game...
ohne Worte ...
gepostet vor 18 Jahre, 1 Monat von Dorgo
Es geht nich um diese Bot speziell sondern was wäre wenn dieser User ihn für Angriffe nutzt oder sonstetwas es war nun ein Beispiel.
Ich hoffe du verstehst was ich meine.
Es ging mit vorallem darum was ich beachten muss um Bots weiterhin vom Spiel vernzuhalten.
Und gesperrt ist der Spieler schon, es steht auch ausdrücklich in den Spiel AGBs das Bots nicht erlaubt sind.
mfg,
Dorgo
Ich hoffe du verstehst was ich meine.
Es ging mit vorallem darum was ich beachten muss um Bots weiterhin vom Spiel vernzuhalten.
Und gesperrt ist der Spieler schon, es steht auch ausdrücklich in den Spiel AGBs das Bots nicht erlaubt sind.
mfg,
Dorgo
gepostet vor 18 Jahre, 1 Monat von None
Ändere ab und an die Parameter
Wenn du dann noch ein Log hast dafür... Bingo...
Einfach und effektiv.
Wenn du dann noch ein Log hast dafür... Bingo...
Einfach und effektiv.
gepostet vor 18 Jahre, 1 Monat von Klaus
Jo, dann gehen dir alle anderen Bots vorerst ins Netz.
Und du hast Glück gehabt den zu finden, weil nicht jeder solche stupiden Menchanismen schreibt.
Und du hast Glück gehabt den zu finden, weil nicht jeder solche stupiden Menchanismen schreibt.
gepostet vor 18 Jahre, 1 Monat von Blabbo
Womit proggen die solche Bots eigentlich?
Wohl kaum mit PHP, oder?
Wohl kaum mit PHP, oder?
gepostet vor 18 Jahre, 1 Monat von None
C#, JavaScript, VB... gibt viele Möglichkeiten.
Ich selbst würde C# bzw. JavaScript verwenden um über die Objektkette an die notwendigen Elemente zu kommen.
Die Programmierung der Bots ist eigentlich relativ einfach. Das was schwieriger wird, ist dann die unterschiedlichen Reaktionsmöglichkeiten auf z.B. Angriffe.
Ich selbst würde C# bzw. JavaScript verwenden um über die Objektkette an die notwendigen Elemente zu kommen.
Die Programmierung der Bots ist eigentlich relativ einfach. Das was schwieriger wird, ist dann die unterschiedlichen Reaktionsmöglichkeiten auf z.B. Angriffe.
gepostet vor 18 Jahre, 1 Monat von Klaus
Original von Blabbo
Womit proggen die solche Bots eigentlich?
Wohl kaum mit PHP, oder?
warum nicht? sourceforge.net/projects/snoopy/
gepostet vor 18 Jahre, 1 Monat von open_dimension
Also ich hab auch mal einen Bot geschrieben.
Ich fand es am Einfachsten einfach mit lynx oder wget, auf Basis eines shell-oder perl-scripts. Ich weiss aber nicht, ob ich damit auch die volle Funktionalität erreiche. Meiner war nur zum statistischen Auslesen.
Ich fand es am Einfachsten einfach mit lynx oder wget, auf Basis eines shell-oder perl-scripts. Ich weiss aber nicht, ob ich damit auch die volle Funktionalität erreiche. Meiner war nur zum statistischen Auslesen.
gepostet vor 18 Jahre, 1 Monat von Tetha
So einen Bot kann man mit jeder Sprache schreiben, die Sockets unterstuetzt.
Man braucht ja nicht mehr als die Moeglichkeit, HTTP-Requests an den Server abzusetzen und XML bzw eine Tagsuppe nach Daten zu durchsuchen.
Wie aber schon richtig gesagt, das Problem ist halt, richtig zu reagieren, weswegen Bots idR doof sind, ausser sie werden von relativ erfahrenen spielern geschrieben
Man braucht ja nicht mehr als die Moeglichkeit, HTTP-Requests an den Server abzusetzen und XML bzw eine Tagsuppe nach Daten zu durchsuchen.
Wie aber schon richtig gesagt, das Problem ist halt, richtig zu reagieren, weswegen Bots idR doof sind, ausser sie werden von relativ erfahrenen spielern geschrieben