PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (PHP) - Sperre in PHP einbauen



noobee
15.07.2017, 20:41
Ich bin mir nicht sicher ob es hier her gehört. Noch weniger sicher bin ich mir bei der Überschrift -.- Mir fiel nix treffenderes ein
Ich brauch mal ne Idee, wie mein Problem am sinnvollsten umgesetzt werden könnte.

Folgendes:
Auf Gerät XY habe ich mittels PHP was nettes programmiert (Lamp ist also auf Gerät XY drauf). Dieses Gerät soll nun vermietet werden. Das vermietete Gerät hängt nicht im Netz. Ich möchte jetzt nach z.B. xx Monaten den Benutzer auffordern, einen validen Code einzugeben, damit die Nutzung des Gerätes XY weiter bestehen kann. Bei keiner/falscher Eingabe soll das Gerät (bzw. keine PHP-Seite) mehr gehen, bis der Nutzer den Code korrekt eingibt.

Meine Frage wäre, wie das zu machen wäre. Ich brauch keine Codesnippets, sondern eine Idee, wie ich diese "Sperre" am besten umsetzen sollte.

fritzi
15.07.2017, 21:20
Mal davon ausgegangen das er die funktionen nicht einfach Umschreibt

Lock Datei(oder in der DB) mit Ablaufdatum, bei Start des Scriptes schaut er ob das Datum(evtl Timestamp) schon erreicht ist und wenn ja führt er es nicht weiter aus.

Dann fragt er nach nem Code in dem du "Codiert" ein neues Datum stehen hast. Base64 würde zb gehen ->neue Lock Datei schreiben.
Willst du einen kürzeren Code haben müsstest du selber was schreiben aber auch das ist eigentlich kein Problem.

Nimbus
16.07.2017, 13:35
Von der Idee her kann man das so umsetzen, wie es fritzi angedeutet hat, allerdings ist diese Sperre nicht gerade geeignet um etwas erfahrene Nutzer davon abzuhalten das Programm dennoch zu nutzen. Da ich nicht weiß, wie genau dein Vorhaben aussieht möchte ich daher ein paar Probleme erwähnen.

Ein Timestamp in einer Datei/Datenbank lässt sich leicht finden und als solcher erkennen. Dann hindert mich niemand daran das Ablaufdaten beliebig zu verschieben.
Der Schlüssel ist auch nicht gerade ideal. Durch die häufige Verwendung von base64 und dem ausfälligen Padding könnte das "Schema" relativ leicht erkannt werden. So kann man sich weitere Schlüssel (mit bel. Ablaufdatum) erzeugen.

Zusätzlich musst du noch beachten, dass dein PHP-Code leicht bearbeitet werden kann. Hier sollte man sein Lizenzsystem mit Obfsucation oder anderen Tools zum Schützen des Codes absichern (z.B. ionCube). Außerdem kann man überlegen ob man noch Daten/Schlüssel/Signaturen online prüft oder ganze Funktionen online auslagert.

HaZe
16.07.2017, 16:23
Wenn man ionCube hat, braucht man auch keinen eigenen Mechanismus zum Sperren, das bringt ionCube mit sich.

noobee
16.07.2017, 19:57
Ah ok. Da sind ja schon mal gute Ansätze, über die ich mir Gedanken machen kann. Grundsätzlich wollte ich in der DB die eineindeutige ID, Datum, Passwort und eine Prüfsumme verschlüsselt speichern. Der User kann dann das neue Datum + Passwort eingeben. Sollte das mittels Prüfsumme passen, läuft das Gerät weiter, sonst nicht.

Dass man das Gerät knacken oder den Code auslesen oder sonst was manipulieren kann, ist ja grundsätzlich überall so. Internet und 100% Sicherheit und so ... ...

HaZe
17.07.2017, 20:37
Das ist richtig.

Eigentlich kommt es auf den Anwendungsfall an. Im B2B Bereich sollte eigentlich eine simple Sperre reichen, im Endkundengeschäft würde ich an deiner stelle immer auf eine etablierte und bewährte Lösung setzen.