Server Browser [v0.1.5] - Schluss mit Suchen!

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Die Chance da zu faken ist enorm hoch... Mit dem FS könnte man ja dir 10000 Votes abgeben ohne das du das merken würdest via timer :)


    Also Fakegefahr enorm hoch wenn Source Code bekannt... Andere Ansicht niemand tut ein FS drauf wo er net mal Sourcecode kennt


    Da ist die Hackgefahr ja noch höher...

  • Andere Ansicht niemand tut ein FS drauf wo er net mal Sourcecode kennt


    Da ist die Hackgefahr ja noch höher...


    Genau aus diesem Grund erhoffe ich mir ja, dass Filterscript durch ein hohes Tier hier im Forum authentifizieren lassen zu können. Das sollte, zumindest für die meisten, ausreichend Bestätigung gegen Malware im Script sein.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Genau aus diesem Grund erhoffe ich mir ja, dass Filterscript durch ein hohes Tier hier im Forum authentifizieren lassen zu können


    In der Tat geht von einem derartigen Skript eine Menge Fakepotential aus, zumindest in Bezug auf die Spielerzahlen.
    Dazu diverse Dinge:
    a) Es wäre sicherer, die Spielerzahlen wie bei einem Serverviewer von einem Webserver aus zu prüfen, um im FS keine Angriffsfläche zu bilden.
    b) Eine Identifizierung einzelner Server über ihre statische Server-IP wäre kein Problem und könnte zusätzliche Sicherheit bieten
    c) Einen ähnlichen Serverbrowser gab es bereits von "kleinerOpa". Dieser hatte eine entsprechende Query in seinen Gamemode eingebaut, wodurch alle Benutzer des Gamemodes auf seiner Webseite aufgelistet wurden.
    d) Wie im Coding-Showroom besteht natürlich auch hier die Möglichkeit, dass Teammitglieder den Quellcode prüfen und dadurch die eigentliche Pflicht der Quellcodeangabe umgehen können. Ich kann diesen Teil gerne übernehmen wenn erwünscht.

  • b) Eine Identifizierung einzelner Server über ihre statische Server-IP wäre kein Problem und könnte zusätzliche Sicherheit bieten

    Ist bereits vorhanden. Der Server übermittelt bei jedem Aufruf an den Webservice mehrere, den Server als unikat identifizierende, Informationen. Von der automatischen Registration bis hin zum abgegebenen Voting. Der Fake über andere Wege als über den Server sollte ausgeschlossen sein.

    c) Einen ähnlichen Serverbrowser gab es bereits von "kleinerOpa". Dieser hatte eine entsprechende Query in seinen Gamemode eingebaut, wodurch alle Benutzer des Gamemodes auf seiner Webseite aufgelistet wurden.

    Da müsste ich mich mal mit der Materie beschäftigen, einen Serverviewer mit Spielerliste zu erstellen, wäre aber auf jeden Fall ein weiterer "Anti-Fake-Faktor", da hast du Recht. Ich mach mich mal schlau.

    d) Wie im Coding-Showroom besteht natürlich auch hier die Möglichkeit, dass Teammitglieder den Quellcode prüfen und dadurch die eigentliche Pflicht der Quellcodeangabe umgehen können. Ich kann diesen Teil gerne übernehmen wenn erwünscht.

    Super, dann lass ich dir direkt die pastebin zukommen :)


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • so wird wenigstens nie wieder jemand nach nem Server fragen

    Nun, dafür müssen wir erstmal abwarten, ob das Script überhaupt angenommen wird. Meine erwarteten 157101 Downloads binnen der ersten Minuten scheinen nicht der Fall zu sein, also abwarten *g*


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Compilt mit -d3 und gibt trotzdem keinen source her. Fail :D


    Und wie soll verhindert werden, dass ich "http://serverbrowser.playsessiontv.de/ajax/rate.php?action=rate&rating=%d&username=%s&port=%d&com=%d" nicht manuell ausführe um den server zu pushen?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Nun, ich würde noch was einbaut, was mir als admin zeigt wenn ein server extrem oft voll bewertet wird, anhand der Namen kann ich dann erkennen ob das gebottet worden ist. Solche Server würde ich persönlich ausspeeren von der Serverliste.

  • Und wie soll verhindert werden, dass ich "http://serverbrowser.playsessiontv.de/ajax/rate.php?action=rate&rating=%d&username=%s&port=%d&com=%d" nicht manuell ausführe um den server zu pushen?


    Es wird überprüft, ob die IP korrekt ist, sowie via Query API, ob der Spieler überhaupt auf dem Server ist. Wie bereits mehrmals erwähnt, es wird immer irgendwelche Mittel und Wege geben um ein System auszutricksen. Ob sich der Aufwand dafür dann noch lohnt ist die andere Frage. Ebenso darf man nicht vergessen, dass ich gerade erstmal den Betalauf durchstarte ;)


    / edit [DT]Sniper: Ist schon integriert. Die Datenbank speichert alle Usernamen, die für Server gevoted haben (und natürlich welchen) mit Datum und Zeit. Wenn da also 1471 Votes in 4 Sekunden kommen, erkennt man recht schnell, welcher Server auf der Homepage auszublenden ist :p


    Musste btw nochmal fix ein paar minimale Änderungen vornehmen, wer sich das Script also schon auf seinen Server gehauen hat, bitte nochmal neu herunterladen, sorry :wacko:


    / edit 2: Das Script scheint wohl noch ein paar Fehlerchen mit der Übertragung des Serverports zu haben. Sobald ich den Fehler ausgemerzt habe, stelle ich die neue Version zur Verfügung.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

    Einmal editiert, zuletzt von LeijaT ()

  • Wie bereits gesagt, das ganze läuft nicht Serverside. Der Server sendet lediglich die Anfragen, sozusagen die "Wünsche". Überprüft und errechnet wird alles durch die API.
    Du kannst gerne in deinem Browser angeben was du willst, ebenso wie von deinem Root aus. Solange der Spieler nicht online ist und andere identifizierende Kriterien nicht erfüllt werden, wird der Webservice garnichts machen.


    Und wie ebenfalls bereits erwähnt: Mittel und Wege ein System auszutricksen wird man immer finden. Diese muss man dann versuchen möglichst produktiv zu sichern, doch da ist man nunmal erstmal auf die kreativen ideen der "Mogler" angewiesen.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • So, hab das mal ausprobiert (bin der 2. Server in der Liste :P)


    Im Server kommen dauernd diese Zeilen:


    Code
    [19:16:36] [SERVER RATING 0.1.0] Baue Serververbindung auf...
    [19:16:36] [SERVER BROWSER 0.1.0] AUSGABE: 200 / CODE_022
    [19:16:44] serverbrowser.playsessiontv.de/ajax/server.php?action=update&port=9999&playerlist=0&hostname=EGC-Reallife | Closed-Beta
    [19:16:44] [SERVER RATING 0.1.0] Baue Serververbindung auf...
    [19:16:44] [SERVER BROWSER 0.1.0] AUSGABE: 200 / CODE_023
    [19:16:47] serverbrowser.playsessiontv.de/ajax/server.php?action=update&port=9999&playerlist=0&hostname=EGC-Reallife | Closed-Beta


    etc.


    Aber anscheinend scheint es zu funktionieren. Ich seh meinen Server in der Liste.


    //edit: Spieler werden auch geupdatet, aber das Rating nicht (hab mal /rate 5 gemacht, es kommt keine Rückmeldung und auf der Webseite steht immernoch Rating (0))
    //edit2: Und der Mode wird nur beim 1. Mal starten gesetzt, er wird nicht aktualisiert (hab vergessen auf Real-Life umzuschalten).
    //edit3: kleiner Verbesserungsvorschlag: bei der IP draufklicken und direkt connecten (samp://blabla:PORT)

  • Die Serverspams sind momentan noch zum Debug für mich da, werden aber ab der ersten Stable-Version rausgenommen. Könnt ihr getrost ignorieren ;)


    Das rate Problem werde ich mir nochmal anschauen. Danke für den Hinweis.
    Der Gamemode wird immer aktualisiert, wenn der Server neugestartet wird. Zum aktualisieren ist also ein Restart von Nöten.
    Link zum direkten Connect ist schon vorgesehen. Die Homepage selbst und alles anklickbare ist momentan nur Template und wird nach und nach aufgearbeitet *g*


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Die Serverspams sind momentan noch zum Debug für mich da, werden aber ab der ersten Stable-Version rausgenommen. Könnt ihr getrost ignorieren ;)


    Ja, nur wird das serverlog gigantisch :)


    Das rate Problem werde ich mir nochmal anschauen. Danke für den Hinweis.


    hab einfach /rate 5 gemacht, kam keine Meldung oder so ^^


    Der Gamemode wird immer aktualisiert, wenn der Server neugestartet wird. Zum aktualisieren ist also ein Restart von Nöten.


    Ja, ne is klar, hab ich ja gemacht :) hat sich iwie nicht aktualisiert ^^


    Ich hab das Filterscript mal rausgenommen bei mir (wegen Punkt 1 ;)), ich freue mich aufs Update :)

  • Ein paar Verbesserungsvorschlaege von mir. Text ist etwas zusammenhanglos, aber hoffentlich trotzdem hilfreich/nuetzlich. ;)


    Es wird überprüft, ob die IP korrekt ist, sowie via Query API, ob der Spieler überhaupt auf dem Server ist.

    Ein Problem bei dem System, welches aber nur wenige Server (und sicherlich die wenigsten deutschen Server) betrifft, ist, dass der Server ab 100 Spieler keine Spieler Namen mehr als Antwort auf einen Query sendet.


    Sofern das Script Verbreitung findet kann ein (optionales) Account-System den Server-Inhabern die Moeglichkeit bieten einen Account und Passwort fuer ihren Server zu setzen, um auch nach einem Server Umzug die Statistiken des alten Servers uebernehmen zu koennen.


    Zitat

    update_playernames: Falls eingestellt, wird eine übersichtliche Liste mit allen momentan online verfügbaren Spielern auf der Webseite angezeigt. Dies geschieht über die OnPlayerConnect und -Disconnect Callbacks.

    Es wird ja bereits die Query-API bei dem rating eingesetzt. Man koennte dem (Web-)Server doch bei dem normalen update() mitteilen, dass update_playernames gesetzt ist und dieser ruft die Spielernamen ab, anstatt dem Spiel-Server zu vertrauen. Zumindest wuerde ich ab einer bestimmten Anzahl an Spielern (z.B. alle Server mit mehr als 30 Spielern) per Query nachpruefen, ob zumindest die Anzahl der Spieler des Servers tatsaechlich stimmt.


    Um den Quelltext noch ein Stueck weit besser zu verstecken koennte noch Anti-DeAMX hinzugefuegt werden. Aber ob der Quelltext offen ist oder nicht ist sowieso egal, solange der Server die Daten sorgfaeltig ueberprueft (wie bei dem Rating system mit der Query-API) und dem Spiel-Server nicht zuviel vertrauen entgegenbringt.


    Ein Problem, welches dadurch entstanden ist, dass der Quelltext jetzt nicht mehr offen ist, ist, dass die Feature-Einstellungen, die unter:

    Es ist dem Serverinhaber (bzw wer auch immer bei euch dafür zuständig ist *g*) selbst überlassen, welche Informationen er öffentlich preisgeben will. Einzustellen sind:

    aufgelistet sind, nicht mehr veraenderbar sind. Die beigefuegte include Datei hilft auch nicht viel, da die AMX bereits fertig kompiliert ist und man diese neu kompilieren muesste, um die Veraenderungen in der include Datei auf die AMX zu uebertragen.
    Wenn es weiterhin closed-source sein soll, dann wuerde sich entweder eine oeffentliche Einstellungs-Funktion (die man also von einem Script aufrufen koennte), oder eine Konfigurations-Datei in dem scriptfiles Ordner anbieten.


    Bei /rate wuerde ich noch ueberpruefen, ob die Zahl zwischen 1 und 5 ist, bevor es zum Server gesendet wird.
    Eine Option, die wenn sie aktiviert ist dem Spieler bei OnPlayerConnect() mitteilt, dass man den Server mit /rate bewerten kann, oder, dass dieses Filterscript auf dem Server laeuft und man mit /sbhelp dazu Informationen bekommen kann, ist sicherlich auch von Vorteil.
    Eine mindest-Zeit, bevor man den Server bewerten kann (z.B. mindestens 2 bis 5 Minuten seit OnPlayerConnect) ist vielleicht auch keine schlechte Idee, um den Server besser vor Leuten zu schuetzen, die nur joinen, um den Server negativ zu bewerten.
    Fuer die Zukunft ist sicherlich auch ein automatisches pruefen, ob es eine neue Filterscript version gibt (z.B. direkt bei dem ersten Anmelden des Servers) nicht verkehrt.


    Bei all der Kritik/den Verbesserungsvorschlaegen soll aber gesagt sein, dass es eine gute Idee ist und sich hoffentlich auch bei den Serverinhabern durchsetzt. Denn bei dem System ist vorausgesetzt, dass man zumindest auf dem Server war, um diesen zu bewerten. Hier im Forum gibt es ja Spezialisten, die dem Server ansehen, dass das Script schlecht sein muss, nur weil das Homepage Design nicht aussieht, wie von der NASA, oder weil das Forum vom Server zu wenig gekostet hat.

  • Sollte eigentlich nicht der Fall sein, da die Einstellung in der .AMX ja nur noch durch den Include stattfinden.

    Aber die Daten in der .amx wurden aus der .pwn und der .inc erstellt. Nach Kompilierung zu einer amx ist die include Datei von keiner Bedeutung mehr und die pwn Datei ist ja nicht mehr mit in dem Archiv.
    Wenn ich irgend etwas falsch verstanden habe, mich gerade total dumm anstelle, oder ich mich mit dem was ich schreibe Irre, dann bitte ich um eine kurze Beschreibung dazu, wie ich mit den im Archiv enthaltenen Daten (serverrating.amx und serverbrowser_config.inc) die Einstellungen des Filterscripts aendern kann.
    Btw. In der Include steht, dass man bei Verbreitung des Scripts auf 'http://forum.sa-mp.de/asdasd' verweisen soll. ;)


    Tut der WebService, je weniger der User pfuschen kann, desto wohler fühle ich mich :p

    Dass der Server das Ueberprueft habe ich mir schon gedacht, aber es entsteht ja nur unnuetzer Traffic, wenn es zum Server gesendet wird. Ausserdem koennte man die "Usage:" Nachricht anzeigen, um den Spieler ueber den Befehl aufzuklaeren, anstatt dem Server die Inkorrekten Daten zu senden und den Nutzer auf die faq-Webseite zu schicken.