Action-Listener, Code verschlüsseln , Lizenzen , Script Lokal ausführen ?

04/21/2019 11:21 Mad0ck#1
Guten Morgen, und Frohe Ostern !

Ich habe einen rootServer angemietet, wo ich mittels crontab alle X Minuten PHP-Scripts ausführe.
Darauf soll auch bald ein Webserver mit DB laufen, um den Server zu starten, oder diverse Aktionen an/ab zuschalten ohne immer mittels putty irgendwas rumschrauben zu müssen.
(Vorallem weil meine Mitspieler nicht die Möglichkeit/Kenntnisse besitzen sowas zu machen)



Wie kann ich nun von meiner Webseite aus den Server steuern, bzw. Parameter an den Server schicken um Ihn abzuschalten/neu zustarten oder, dass er diverse Scripts nicht mehr ausführt ?

Ich habe da leider nichtmal eine Ahnung nach was ich googeln sollte.
Falls das wer weiß, würde mir nen link wo über das Thema geschrieben wird schon sehr helfen. Lesen kann ich zum Glück dann doch selber (:

Kann man sowas mit ner Datenbank machen ?
Soll dorf X angreifen ? -> Wert in DB speichern.
Nen weiteres Script Wertet den Entry aus -> Falls JA führe Script xy aus.




Da die zukünftig vorhabe, das Script auch an andere weiterzugeben, muss das ganze auch irgendwie lokal laufen.
Folgende Probleme:
- welcher Lokale Server ? XAMPP /WAMP , ... ?

- PHP Code wäre dann frei einsehbar, da Sie den Code lokal gespeichert haben. Wie kann ich diesen verschlüsseln / unlesbar machen, sodass die Personen keinen eigenen Nutzen daraus schließen können.

- Ich will den Code nicht 1x gegen Bezhalung hergeben, sondern Plan wäre, dass monatlich dafür zu bezahlen wäre, da Runden unterschiedlich lange gehen.
Wie kann ich sowas umsetzen ?
Soll ich da direkt am Anfang ne Abfrage einbauen, ob der Spieler mit dem Account XY freigeschaltet ist ?
-> Request an meinem Webserver, welcher die Abfrage verarbeitet( in der DB nachschaut ob er bezahlt hat oder nicht ), und dann einen Response zurückschickt mit JA oder NEIN ?

Deswegen wäre es auch wichtig, dass der Käufer das Script lokal nicht sehen kann/ entschlüsseln kann.



Die wohl aktuell wichtigste Sache was mich beschäftigt...

Ich wandle aktuell den (noch) prozeduralen Code in Funktionen um.
Login, angreifen, Handelsrouten erstellen, Berichte parsen und Statistiken erstellen etc.

Ich hätte dann also für jede Funktionalität eigene Funktionen.

Wie kann nun zB einen art "EventListener" umsetzen ?
Ich will zB ein Script am laufen haben, welches alle X Sekunden nachsieht ob ich auf der Webseite Änderungen vorgenommen habe.
Falls was geändert wurde, soll dies umgesetzt werden.

Wie kann man sowas umsetzen ?






Sorry für die Vielen Fragen, und vorallem ,dass es soviel zum lesen ist.
Leider hab ich in der Thematik keinerlei Erfahrung, und auch keine Anhaltspunkte nach was ich suchen soll.


Ich freue mich echt auf viele Antworten / Unterstützung.

Liebe Grüße
Mad0ck
04/21/2019 11:30 chr1zzLy#2
Quote:
Originally Posted by Mad0ck View Post
Wie kann nun zB einen art "EventListener" umsetzen ?
Ich will zB ein Script am laufen haben, welches alle X Sekunden nachsieht ob ich auf der Webseite Änderungen vorgenommen habe.
Falls was geändert wurde, soll dies umgesetzt werden.

Wie kann man sowas umsetzen ?
Damit kenne ich mich auch nicht soo top aus, aber was ich mal dazu gefunden habe, wäre das: [Only registered and activated users can see links. Click Here To Register...]

Vielleicht hilft's dir weiter.
04/21/2019 14:20 False#3
Quote:
Originally Posted by Mad0ck View Post
Guten Morgen, und Frohe Ostern !

Ich habe einen rootServer angemietet, wo ich mittels crontab alle X Minuten PHP-Scripts ausführe.
Darauf soll auch bald ein Webserver mit DB laufen, um den Server zu starten, oder diverse Aktionen an/ab zuschalten ohne immer mittels putty irgendwas rumschrauben zu müssen.
(Vorallem weil meine Mitspieler nicht die Möglichkeit/Kenntnisse besitzen sowas zu machen)
[...]
An und ausschalten ist relativ easy, es gibt diverse Befehle womit du auf der cli etwas via php ausführen kannst z.B. shell_exec, exec, passthru, system, proc_open etc..
Alle haben ihre Vor- und Nachteile, du musst entscheiden was du nutzt.
Da bei Linux Brechtigungen sehr wichtig sind darf dein Benutzer (der vom Werbserver => bei Apache2 z.B. www-data) natürlich nicht einfach alles ausführen.
Daher musst du dem Benutzer das erst erlauben, mehr dazu hier: [Only registered and activated users can see links. Click Here To Register...].

Damit bestimmte Dörfer angegriffen werden oder nicht kannst du z.B. durch ein Flag "active" beinflussen.
Dieses Flag setzt du auf true/false (bzw 0/1) in der Datenbank mittels dem Webinterface.
Im Cronjob (dein PHP Script) holst du dir dann einfach nur die Dörfer aus der Datenbank die das Flag auf true stehen haben.

Quote:
Originally Posted by chr1zzLy View Post
Damit kenne ich mich auch nicht soo top aus, aber was ich mal dazu gefunden habe, wäre das: [Only registered and activated users can see links. Click Here To Register...]

Vielleicht hilft's dir weiter.
Anhand des Namends würde ich behaupten das es ein ganz anderes Thema ist.
04/21/2019 20:41 florian0#4
Quote:
Originally Posted by Mad0ck View Post

Wie kann ich nun von meiner Webseite aus den Server steuern, bzw. Parameter an den Server schicken um Ihn abzuschalten/neu zustarten oder, dass er diverse Scripts nicht mehr ausführt ?

Ich habe da leider nichtmal eine Ahnung nach was ich googeln sollte.
Falls das wer weiß, würde mir nen link wo über das Thema geschrieben wird schon sehr helfen. Lesen kann ich zum Glück dann doch selber (:

Kann man sowas mit ner Datenbank machen ?
Soll dorf X angreifen ? -> Wert in DB speichern.
Nen weiteres Script Wertet den Entry aus -> Falls JA führe Script xy aus.
DB wäre die einfachste Form, wenn dein Hauptscript eh zyklisch ausgeführt wird. Ne Tabelle mit den Optionen und nen einfaches if reicht ja.

Quote:
Originally Posted by Mad0ck View Post

Da die zukünftig vorhabe, das Script auch an andere weiterzugeben, muss das ganze auch irgendwie lokal laufen.
Folgende Probleme:
- welcher Lokale Server ? XAMPP /WAMP , ... ?
PHP als Script kann man auch so ausführen. Ich weiß ja nicht was da noch alles dahinter steckt. XAMPP macht nur Sinn wenn du neben PHP auch noch den Webserver (und die DB) brauchst. Einen Webserver kann PHP auch stellen. Der ist ausreichend.
XAMPP kann an der Stelle aber auch etwas an Arbeit abnehmen. Dein Programm fühlt sich an wie ein Bot und im reinen Anwenderkreis dieser Programme ist Intelligenz ein Fremdwort, von daher kannst du hier XAMPP auch einfach komplett vorkonfiguriert mit Anwendung ausliefern.

Quote:
Originally Posted by Mad0ck View Post
- PHP Code wäre dann frei einsehbar, da Sie den Code lokal gespeichert haben. Wie kann ich diesen verschlüsseln / unlesbar machen, sodass die Personen keinen eigenen Nutzen daraus schließen können.

- Ich will den Code nicht 1x gegen Bezhalung hergeben, sondern Plan wäre, dass monatlich dafür zu bezahlen wäre, da Runden unterschiedlich lange gehen.
Wie kann ich sowas umsetzen ?
Soll ich da direkt am Anfang ne Abfrage einbauen, ob der Spieler mit dem Account XY freigeschaltet ist ?
-> Request an meinem Webserver, welcher die Abfrage verarbeitet( in der DB nachschaut ob er bezahlt hat oder nicht ), und dann einen Response zurückschickt mit JA oder NEIN ?

Deswegen wäre es auch wichtig, dass der Käufer das Script lokal nicht sehen kann/ entschlüsseln kann.
Obfuscation gibts für PHP, dann kann "ohne weiteres" keiner mehr den Quellcode lesen.
Desweiteren suchst du nach einem Lizenzsystem.
Die Sinnhaftigkeit und Effektivität von Beidem wird in diesem Post ausreichend erklärt: [Only registered and activated users can see links. Click Here To Register...]

Quote:
Originally Posted by Mad0ck View Post
Die wohl aktuell wichtigste Sache was mich beschäftigt...
[...]
Wie kann nun zB einen art "EventListener" umsetzen ?
Ich will zB ein Script am laufen haben, welches alle X Sekunden nachsieht ob ich auf der Webseite Änderungen vorgenommen habe.
Falls was geändert wurde, soll dies umgesetzt werden.

Wie kann man sowas umsetzen ?
Bei dir kollidieren vermutlich gerade Request-Response-basierte Webprogramierung und "klassische" Programmierung.
Ein PHP Script im Web lebt nur solange die Webseite geladen wird. Die Ausführung endet sobald die Webseite geladen ist.
Die Ausführung eines "klassischen" Programms endet erst wenn das Fenster geschlossen wird.

Um das zu beantworten müsste man genauer wissen wie deine Anwendung strukturiert ist. Wenn es "nur" eine Webseite ist, hast du wenig Chancen da mit reinem PHP Hintergrundaufgaben auszuführen. Da bräuchtest du dann JavaScript, um diese wenigstens zu starten.

In den meisten anderen Fällen reicht eine einfache Schleife, oder, falls die Schleife nicht möglich ist, eine Möglichkeit zumindest die vergangene Zeit zu "messen".