Beiträge von Kaliber

    Mach das mal so:

    self.getAdmin = function() return self.admin end

    Denn wenn du rTable deklarierst, bezieht sich der Kontext "self" in der Funktion auf rTable und der ist immer null, da dort kein Admin deklariert ist.


    und lösch oben das local self = {}


    Denn self ist ein Keyword in lua, das bezieht sich schon auf die Funktion selbst. Also da bedarf es keiner Deklaration, finde ich merkwürdig, dass er das überhaupt zulässt. Aber ich habe noch nie mit LUA gearbeitet (rate hier nur) 😅

    Bitte kein MD5 verwenden! (Das ist nicht DSGVO konform!)

    Und auch keine Hash Funktion in SQL verwenden, denn dann stehen die Passwörter im Klartext im mysql.log...

    Toll dass jeder Admin dann potentiell alle Passwörter hat, super!


    Bitte auf BCrypt setzen: Hash Verfahren genauer erklärt


    Und als Tipp, kein %s im Query nutzen, da dies MySQL-Injections ermöglicht. So wie es aktuell ist wäre es ein leichtes jeden Spieler zu bearbeiten oder die ganze DB zu löschen.


    Der Spieler wird auch geladen, vermutlich ist Skriptseitig etwas nicht ganz richtig. Und es gibt einen Fehler in der MySQL-Syntax laut log, wird da etwas falsch übergeben.

    Es kommt immer NULL zurück,

    Dann ist wohl etwas falsch mit dem Query...


    Probiers mal so:


    Okay, aber wie machst du denn den Aufruf?


    Nutzt du jetzt POST oder GET?


    Denn zum einen machst du in LUA einen Post Aufruf, aber die URL und im PHP Skript nutzt du ja $_GET, anstatt $_POST.


    Mit dem print_r kannst du dir ja ausgeben, was denn nun eigentlich beim Server ankommt und das mal debuggen...

    Ich habe eine Middleware (falls man das auch so bei Vue nennt), welche prüft, ob man angemeldet ist

    Ich weiß nicht, wie hier der Code dafür aussieht. Aber vermutlich prüfst du gegen den LocalStorage, ob da eine Variable gesetzt ist. Und da der LocalStoarge beim Client liegt, kann dieser natürlich sehr einfach manipuliert werden.



    Muss ich bei jedem Aufrufen einer Seite auch prüfen, ob dieser einen gültigen Hash hat? Also immer wieder das Backend ansprechen?

    Genau, da das ja einfach manipulierbar ist und somit "theoretisch" jeder auf die Seite kommen kann, bedarf es einer Backend Prüfung, ob diese Person wirklich darauf Zugriff hat.

    Wie genau mach ich das, bzw. wie verläuft die Prüfung? Alles ist ja beim Client einsehbar und veränderbar. Dann kann ich doch auch die Prüfung des Token/Hashes einfach umgehen.

    Der Token/Hash liegt beim Client, aber die Prüfung findet natürlich Serverseitig statt, mittels z.B. NodeJS :)


    Bei Verifizierungsverfahren kommt man nicht drum herum eine Serverseite zu haben ^^

    wodurch der Code den der Client am Ende erhält bundled und minified ist, wodurch es gar nicht mehr der "originale" Source Code ist und dadurch auch schwerer zu lesen ist.

    Das mag durchaus sein, allerdings gibt es Seiten, wodurch das minified rückgängig gemacht werden kann. Zudem bleiben Strings erhalten und so ist es schon möglich einige Eindrücke zu erhalten...

    Primär ging es ja auch nur um die Möglichkeit, ob es möglich wäre, nicht, ob es trivial ist ^^

    ich bräuchte einmal einen kleinen Snippet für ein PostRequest via Lua, das ganze soll eine Abfrage an einen Server darstellen und dieser liefert auch ein Ergebniss zurück.

    Was ist denn das Problem?


    Wenn der Request funktioniert und ein Ergebnis liefert, ist doch alles gut oder nicht?


    Worauf genau willst du denn eine Antwort oder einen Hinweis...deine Frage geht in deiner Erklärung irgendwie unter ^^

    Ich versuche mich mal an den Fragen:


    Habe ich das richtig verstanden: Vue ist eine reines Frontend-Framework?
    Man benötigt also, nicht wie in PHP bspw., immer eine Backend-Schnittstelle, meistens eine (selbst geschriebene) REST-Full API Schnittstelle o.ä.?

    Ja, Vue JS ist ein Frontend-Framework. Sprich es vereinfacht dir das Seitenerstellen mit Hilfe von JS. Dadurch kannst du Module und Templates erstellen und diese immer wieder verwenden und kompliziertere Logiken einfacher gestalten. (Wobei VUE inzwischen auch SSR (Server Side Rendering) kann, aber trotzdem bleibt es natürlich ein Frontend-Framework hier ein Artikel mal dazu: https://vuejs.org/guide/scaling-up/ssr.html)


    Die zweite Frage verstehe ich nicht ganz. VUE basiert auf Javascript und das kann direkt beim Client ausgeführt werden, also ja, du brauchst kein Backend, das würde alles in einer .html Datei so ausgeführt werden können.


    Ist der ganze Script-Code für den Nutzer einsehbar? Ich konnte auch im Build-Status meinen Code einsehen. Bedeutet also, ich kann keine lokale Sicherheitsabfrage stellen. Diese sind ja dann einfach im Quellcode einsehbar?
    Als Beispiel: Ich möchte für ein sehr kleines Projekt einen Login anbieten, aber dafür keine Nutzerdatenbank anlegen. Die Anmeldung läuft über statisch angelegte Werte - die dann im Quellcode lesbar sind. Gibt es hierfür eine andere Methode?

    Ja, alle JS Logiken sind immer einsehbar, da sie am Client ausgeführt werden und nicht am Server.

    Ja, dafür brauchst du ein Backend-System wie z.B. NodeJS, das läuft ja dann am Server und nicht am Client.

    (Als Hinweis: Ich nutze auch Vue-Router und Vuex) Eine Variable im Storagemanager von Vuex handelt den Status der Anmeldung. Kann der Nutzer diese nicht einfach manipulieren und ist somit dann auch angemeldet?

    Theoretisch ja, aus diesem Grund sollte natürlich auch immer ein Token/Hash generiert werden, womit abgeglichen werden kann, dass man wirklich angemeldet ist. :)