kennwortgeschützter Login - wie?

Hier könnt ihr alle Fragen zu SpiderBasic austauschen.
Benutzeravatar
stab
Beiträge: 92
Registriert: 24.02.2006 16:09
Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Wohnort: Hardt
Kontaktdaten:

kennwortgeschützter Login - wie?

Beitrag von stab »

Hallo,

ich suche einen Lösungsansatz.

Was ich hier habe:
Einen kleinen Server 2019, den ich auch via DynDns erreichen kann.
Auf diesem läuft mein OVPN Server.
Mit diesem verbinden sich einige Geräte, die Statusmeldungen verschicken.
Zudem kann ich auf diese Geräte wiederum per HTTP zugreifen und diese Geräte per API fernsteuern und abfragen.

Ich würde mich gerne sicher (damit meine ich Kennwortgeschützt) über HTTP(S) von außen auf meinen Server 2019 einloggen, um dann auf weitere Inhalte zugreifen zu können.

Symphatisch wäre mir eine Prozedur in Spiderbasic.

Ist das der richtige Ansatz?
Gibt es vielleicht im PureBasic/Spiderbasic Fundus etwas, was in die Richtung geht und was ich evt. als Gerüst nehmen könnte?

Danke PB Freunde.
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."

Wer lügt hier wirklich und wer sagt die Wahrheit?

_________________________________________

286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: kennwortgeschützter Login - wie?

Beitrag von NicTheQuick »

Ich verstehe nicht ganz. Wenn das doch ein OVPN-Server ist, dann verbindest du dich von außen doch auch mit einem OpenVPN-Clienten und damit ist alles verschlüsselt.

Selbst wenn du dann Kennwörter über HTTP überträgst, könnte es niemand abhören. Und wenn du HTTPS nutzen willst, brauchst du einen Proxy, der das kann, also z.B. Apache oder Nginx. Du müsstest dir dann dein eigenes Zertifikat basteln und auf deinen Client-Geräten als vertrauenswürdig einstufen. Anders geht es in einem Intranet nicht.

Alles in allem aber ein komplexes Thema und sehr individuell. Was du da genau mit Spiderbasic machen willst, hab ich nicht verstanden. Vielleicht musst du mir dein Szenario noch etwas genauer erklären.
Bild
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: kennwortgeschützter Login - wie?

Beitrag von mk-soft »

Eigentlich hat doch heut zu tage jeder Router eine VPN-Server.

Hat sich doch somit alles erledigt.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
stab
Beiträge: 92
Registriert: 24.02.2006 16:09
Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Wohnort: Hardt
Kontaktdaten:

Re: kennwortgeschützter Login - wie?

Beitrag von stab »

Es ist vielleicht einfacher, als ich es geschildert habe.
Der OVPN Server war nur ein Hinweis, spielt auch keine Rolle.
Die Geräte können sich auch hier lokal im Netz befinden.

Also, im Moment sitze ich hier im Büro, gehe an meinen Server (Remote oder physkalisch) und kann alle Geräte per HTTP-Request steuern und alle möglichen Protokolle einssehen.

Vereinfacht z.B. eine Alarmanlage mit dem Befehl:

http://administrator:kennwort@10.0.0.10 ... rf=disable

unscharf schalten.


Das Ganze geht natürlich auch aus Honolulu per RDP/Teamviewer/Anydesk etc..

Möchte ich die Aufgabe aber übergeben, hat der/die/divers durch den Link vollen Zugriff auf den Server und Einsicht in Benutzername und Kennwort.

Schöner wäre es, auch für mich, ich hätte ein Webinterface mit Benutzername und Kennwort, danach käme ich auf eine weitere Webseite mit diversen Links, Gadgets (Protokoll einsehen, Gerät 1 scharf schalten, Gerät 1 unscharf schalten) usw.
Das würde ich dann gerne mit Spiderbasic realisieren. Datenbankanbindungen etc.

Da will ich hinkommen ....
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."

Wer lügt hier wirklich und wer sagt die Wahrheit?

_________________________________________

286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Benutzeravatar
stab
Beiträge: 92
Registriert: 24.02.2006 16:09
Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Wohnort: Hardt
Kontaktdaten:

Re: kennwortgeschützter Login - wie?

Beitrag von stab »

mal ganz einfach gefragt:

Kann ich mit Spiderbasic ein Login mit Benutzername und Kennwort realisieren?

https://www.vrbank-altenburgerland.de/b ... vate/entry
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."

Wer lügt hier wirklich und wer sagt die Wahrheit?

_________________________________________

286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: kennwortgeschützter Login - wie?

Beitrag von NicTheQuick »

Jedenfalls nicht ohne eine serverseitige Implementierung. Bei Fragen zu Spiderbasic bin ich eigentlich raus, weil ich es weder besitze, noch nutze. Aber soweit ich weiß läuft es eben nur Clientseitig (Frontend), also im Browser. Und da kann man keine sichere Authentifizierung bewerkstelligen. Du brauchst ein Backend und eine Cookie-Verwaltung. Oder alternativ die gute alte HTTP Basic Authentification. Aber dann kannst du noch immer nicht ohne weiteres zwischen den verschiedenen eingeloggten Nutzern unterscheiden.

Die Befehle wie http://administrator:kennwort@10.0.0.10 ... rf=disable dürfen auch nicht Frontend existieren oder dargestellt werden, denn sonst würde man ja wieder Nutzername und Passwort sehen, wenn man nur mit der Maus über den Link fährt. Oder wenn man sich den Quelltext anschaut. Das heißt das Backend müsste dafür ebenfalls Proxy spielen.

Ein möglicher Use-Case wäre dann in etwa so:
  1. Nutzer besucht das Webinterface und es wird ihm eine Login-Maske präsentiert.
  2. Nutzer gibt Nutzername und Passwort ein und bestätigt, sodass die Daten zum Backend übertragen werden.
  3. Das Backend prüft, ob die Daten stimmen und liefert entweder eine Fehlerseite zurück oder erzeugt eine neue Session und teilt dem Browser das neue Cookie mit.
  4. Der Nutzer ist nun eingeloggt und sieht alle Möglichkeiten, die er durchführen darf. Natürlich hat das Backend je nach Nutzername entschieden, was der Nutzer sieht.
  5. Es gibt dort zum Beispiel den Link /alarm?scharf=disable, auf den der Nutzer klickt.
  6. Das Backend reagiert auf die Adresse /alarm, liest den Parameter 'scharf' aus dem GET-Request und ruft dann intern den echten Link http://administrator:kennwort@10.0.0.10 ... rf=disable auf
So ist gewährleistet, dass der Nutzer niemals die IP-Adresse, Login und Passwort zur Alarmanlage sehen kann.
Bild
Benutzeravatar
Kiffi
Beiträge: 10620
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: kennwortgeschützter Login - wie?

Beitrag von Kiffi »

stab hat geschrieben:Kann ich mit Spiderbasic ein Login mit Benutzername und Kennwort realisieren?
Bild

auf die Schnelle:

Code: Alles auswählen

EnableExplicit

#Dialog = 0
#Xml = 0

Runtime Enumeration
  #txtBenutzername
  #txtPasswort
EndEnumeration

Runtime Procedure LoginButtonEvent()
  
  Debug "#txtBenutzername: " + GetGadgetText(#txtBenutzername)
  Debug "#txtPasswort: " + GetGadgetText(#txtPasswort)
  
  ; HTTPRequest...
  
EndProcedure

Define XML$

XML$ = "<window id='#PB_Any' name='test' text='Login' minwidth='300' minheight='auto' flags='#PB_Window_ScreenCentered | #PB_Window_SystemMenu'>" +
       "  <vbox>" +
       "    <gridbox colexpand='item:2'>" +
       "      <text text='Benutzername:' flags='#PB_Text_VerticalCenter' />" +
       "      <string id='#txtBenutzername' />" +
       "      <text text='Passwort:' flags='#PB_Text_VerticalCenter' />" +
       "      <string id='#txtPasswort' flags='#PB_String_Password' />" +
       "    </gridbox>" +
       "    <empty />" +
       "    <hbox>" +
       "      <button text='Anmelden' height='30' onevent='LoginButtonEvent()' />" +
       "    </hbox>" +
       "  </vbox>" +
       "</window>"

If ParseXML(#Xml, XML$) And XMLStatus(#Xml) = #PB_XML_Success
  If CreateDialog(#Dialog) And OpenXMLDialog(#Dialog, #Xml, "test")
    SetActiveGadget(#txtBenutzername)
  Else  
    Debug "Dialog error: " + DialogError(#Dialog)
  EndIf
Else
  Debug "XML error: " + XMLError(#Xml) + " (Line: " + XMLErrorLine(#Xml) + ")"
EndIf
in der Prozedur LoginButtonEvent() machst Du dann einen HTTPRequest(), um serverseitig zu prüfen, ob Benutzername und Passwort korrekt sind.

Grüße ... Peter
Hygge
Benutzeravatar
stab
Beiträge: 92
Registriert: 24.02.2006 16:09
Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Wohnort: Hardt
Kontaktdaten:

Re: kennwortgeschützter Login - wie?

Beitrag von stab »

Cooooool !!!
Vielen Dank an alle und besonders für den Code "auf die Schnelle ..."
Ich denke, dann bin ich auf dem richtigen Weg und kann darauf aufbauen.

Eine Verständnisfrage noch:
Habe mir Spiderbasic schon vor längerer Zeit gekauft, bisher jedoch noch nie eingesetzt.
Beim Durchsehen der Showcase-Beispiele letztens ist mir aufgefallen, das Dialoge einerseits in XML sowie mit den üblichen Gadgets erstellt werden können.
Das Login-Beispiel von Kiffi basiert ja auch auf XML.
Ist das eine Trendgeschichte, Programiergeschmacksache oder was hat das für eine besondere Bewandtnis?

PS: Nochmal Danke für das super Forum hier an alle Mitglieder. Macht wirklich Spaß.
Wer z.B. das Netzwerkforum administrator.de kennt und dort auch mal eine nicht ganz so professionelle Frage gestellt hat, weil der Hauptberuf halt nicht Netzwerkadministrator ist, weiß vielleicht was ich meine. -> Klugscheisser-Antworten, Vorwurfsantworten, Besserwisser-Antworten oder Antworten wie, "Ja, geht. Sage aber nicht wie."


Bin zwar kein Freund von Emojis, aber dieser muss sein: :praise:

Schönen Feiertag ... Gruß Stephan
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."

Wer lügt hier wirklich und wer sagt die Wahrheit?

_________________________________________

286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Benutzeravatar
Kiffi
Beiträge: 10620
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: kennwortgeschützter Login - wie?

Beitrag von Kiffi »

stab hat geschrieben:[XML] Ist das eine Trendgeschichte, Programiergeschmacksache oder was hat das für eine besondere Bewandtnis?
ich verwende die Dialog-Library aus drei Gründen gerne:

Erstens muss ich die Gadgets nicht pixelgenau platzieren. Das erledigt das Layout für mich.

Zweitens muss ich mir keine Gedanken um die Anpassung von Gadgets in größenveränderbaren Fenstern machen, weil das automatisch geschieht.

Und drittens kann ich die Event-Verarbeitung direkt im XML angeben und muss die Gadgets nicht explizit mit BindGadgetEvent() binden.

Erwähnenswert ist vielleicht noch, dass man XML-Dialoge auch nachträglich bearbeiten kann (sofern sie mit LoadXml() vom Kompilat zur Laufzeit geladen werden). Wäre unter Umständen interessant für Übersetzungen in andere Sprachen, oder ähnliches.

In diesem Zusammenhang empfehle ich den hervorragenden DialogDesign0R von HeX0R

Grüße ... Peter
Hygge
Benutzeravatar
dige
Beiträge: 1182
Registriert: 08.09.2004 08:53

Re: kennwortgeschützter Login - wie?

Beitrag von dige »

@stab: du solltest dir für die Client (SpiderBasic) - Server (PureBasic) Kommunikation unbedingt SpideBite anschauen: https://github.com/spiderbytes/SpiderBite
"Papa, mein Wecker funktioniert nicht! Der weckert immer zu früh."
Antworten