Hallo miteinander, ich habe ein etwas ausgefallenes Problem und bin
etwas ratlos.
Ich habe ein online-Verwaltungssystem in PHP erstellt, bei dem sich die
Benutzer ganz normal mit Accounts anmelden.
Jetzt soll es eine bestimmte Station geben, von der aus eben ein ganz
bestimmter Funktionsaccount automatisch drin ist.
Die Zugangskontrolle ist in dem Fall dann einfach der Zugang zum
Rechner, vor Ort soll es schnell gehen und sich die Leute nicht erst
jeder einzeln anmelden müssen.
Wie könnte man sowas mit PHP, JavaScript o.ä. realisieren?
Da der Client ebenfalls von mir mitverwaltet wird und ausser Terminal
für die Datenbank zu spielen keine weitere Funktion hat, darf es ruhig
etwas spezielleres sein, bzw eine Methode, die eine bestimmte
Konfiguration/Installation am Rechner voraussetzt.
Würde mich über ein paar Anregungen sehr freuen.
Gruß
Jens
Jens Plappert schrieb:> Würde mich über ein paar Anregungen sehr freuen.
Anmeldung über die .htaccess machen, dann einfach "Passwort merken"
setzen. schon wird immer der Login Name mitgesendet.
Oder noch etwas sicherer, Anmeldung über Client-Zertifikat.
Jens Plappert schrieb:> bei dem sich die> Benutzer ganz normal mit Accounts anmelden.>> Rechner, vor Ort soll es schnell gehen und sich die Leute nicht erst> jeder einzeln anmelden müssen.
Und jeder, der an diesem Rechner sitzt, soll auf demselben Account
rumaendern?
wendelsberg
>Und jeder, der an diesem Rechner sitzt, soll auf demselben Account
rumaendern?
Das kann schon Sinn machen wenn der account z.B. hauptsächlich
Informationen zu Verfügung stellen soll und daher nur Leserechte
benötigt.
viel Erfolg
Hauspapa
Es geht um eine Fahrtenverwaltung für einen Verein. Das ganze ist nur
die elektronische Variante eines "Heftes", in das sich jeder einträgt.
Von daher genügt ein gemeinsamer Account für den Rechner vor Ort.
Die personalisierten Accounts können dann ihr eigenes Material usw
Verwalten, was jetzt vom Vereinsheim aus nicht wirklich notwendig ist.
Von daher passt das schon. Bisher könnte ja auch jeder in der Liste
rumkritzeln. Bei dem begrenzten Benutzerkreis, bei dem auch jeder ein
Eigeninteresse für ein funktionierendes System hat, schliesse ich jetzt
mal Missbrauch aus (zumal der Account natürlich auch sehr eingeschränkt
ist). Der Benutzer kann auch nichts groß Ändern oder manipulieren, nur
Datensätze erstellen (also eigene aktuelle Sachen eintragen). Maximaler
Fehlerfall wäre also "Spam".
Da das ganze in einem Webhosting-Paket läuft (also kein
selbstverwalteter Server), stell ich mir das mit den Zertifikaten
schwierig vor.
Wird .htaccess denn in den Browsern zuverlässig abgelegt und behalten?
Ich wollte jetzt ungern Daten eines Accounts einfach so als Zettel
dranpappen.
Erkennung über IP geht leider nicht, da die Anwendung online läuft und
der Rechner über eine normale Internetverbindung (sprich wechselnde IP)
reingeht.
Eine zuverlässige und sichere Methode die GUID oder MAC mit
PHP/Javascript/CGI auszulesen gibt es meines Wissens nach nicht, oder
irre ich mich da?
Vielen Dank schonmal für die Antworten und Gruß
Jens
Hi
ich hab zwar absolut keine Ahnung von dem ganzen Browser- und Webzeug
aber würde es nicht reichen sich einmal mit dem speziellen Account an
dem Rechner einzuloggen und dann ein Cookie mit entsprechenden
Informationen zu setzen?
Matthias
Mir erscheint das halt als zu unsicher (unsicher im sinne von
Betriebssicher).
Sollte irgendwie mal das Cookie bzw die Session dazu ungültig werden,
musste dich neu einloggen, das möchte ich nach Möglichkeit vermeiden.
Jens Plappert schrieb:> Ich wollte jetzt ungern Daten eines Accounts einfach so als Zettel> dranpappen.Jens Plappert schrieb:> Bisher könnte ja auch jeder in der Liste> rumkritzeln. Bei dem begrenzten Benutzerkreis, bei dem auch jeder ein> Eigeninteresse für ein funktionierendes System hat, schliesse ich jetzt> mal Missbrauch aus (zumal der Account natürlich auch sehr eingeschränkt> ist). Der Benutzer kann auch nichts groß Ändern oder manipulieren, nur> Datensätze erstellen (also eigene aktuelle Sachen eintragen).Jens Plappert schrieb:> Mir erscheint das halt als zu unsicher (unsicher im sinne von> Betriebssicher).>> Sollte irgendwie mal das Cookie bzw die Session dazu ungültig werden,> musste dich neu einloggen, das möchte ich nach Möglichkeit vermeiden.
Das ist dann doch auch nicht so schlimm, da wird eben das Vereinsheim
als Hochsicherheitszone deklariert und der Zettel mit dem Accountdaten
kommt UNTER die Tastatur. ;-)
wendelsberg
Ich rechne ja eigentlich nicht mit missbrauch, aber einen bekannten
Funktionsaccount rückt man mal eben leichter raus, als "seinen eigenen".
Ich spiel jetzt einfach mal mit htaccess rum und habe in dem Verzeichnis
dann ein Script, dass mich automatisch am System anmeldet, bisher
erscheint mir das am praktikabelsten.
Warum kompliziert wenn es einfach geht?
Der Rechner im Vereinsheim ruft die Website mit einem speziellen GET
oder besser POST Parameter auf welchen keiner kennt und der fix
einprogrammiert gespeichert ist.
In PHP wird GET/POST abgefragt und wenn der String passt dann der
vereinsheimaccount eingeloggt (:
Markus H. schrieb:> Warum kompliziert wenn es einfach geht?>> Der Rechner im Vereinsheim ruft die Website mit einem speziellen GET> oder besser POST Parameter auf welchen keiner kennt und der fix> einprogrammiert gespeichert ist.>> In PHP wird GET/POST abgefragt und wenn der String passt dann der> vereinsheimaccount eingeloggt (:
BITTE nicht. Sicherheit auf Basis "was keiner kennt" ist keine. Weil was
keiner kennt, kennt am Ende jeder.
Was Du hier willst kann so leider nicht umgesetzt werden, ausser Du
bindest ActiveX oder Java mit ein (nicht Javascript. Java). Damit könnte
man beispielsweise die CPUID auslesen, die den Rechner identifizieren
würde. Was allerdings natürlich zu Problemen führen wird wenn der
Rechner getauscht werden muss, auch klar.
Mit "herkömmlichen" Scriptsprachen und anderen browserinternen Tools
kommt man dort nicht hin, weil die aus ihre Sandbox nicht ausbrechen
können (sollten... aber sich auf einen Exploit verlassen ist auch nicht
wirklich 'ne Idee...).
Die sinnvollste und einfachste Lösung scheint mir hier immer noch die
mit dem Session Cookie zu sein, das eben nie abläuft und wo, wenn mal
wirklich jemand die Cookies löschen sollte aus irgendeinem noch nicht
ganz logischen Grund, die Credentials halt die "Berechtigten" gesagt
bekommen, damit diese sich halt trotzdem einloggen können. Alles andere
wird wahrscheinlich mehr Kopfschmerz verursachen als die Usability
hergibt.
z.B.
1.Usergruppe bilden, die sich anmelden DARF?
Damit könnte jedes Mitglied sein eigenes PW benutzen.
2.Oder lange laufendes, eigenes Client-Zertifikat erstellen? Es sollte
dann in diesem einen PC bekannt sein. Vorteil ist: Es ist HW-unabhängig,
falls PC mal defekt sein sollte.
Hallo,
die zuverlässigste Möglichkeit zur Identifikation des Clientrechners
wäre eine Authentifizierung über TLS-Zertifikate. Das wäre zwar maximal
sicher, aber nicht sonderlich trivial: der Rechner im Vereinsheim und
der Server hätten dann eine gemeinsame CA, und wenn der Client ein von
dieser CA beglaubigtes Zertifikat vorlegt, wird er automatisch
authentifiziert und autorisiert. In diesem Fall stellt sich jedoch die
Frage, wie das mit den externen Nutzer funktionieren könnte. Wenn bei
den externen Nutzern ein Zertifikat installiert werden kann, wäre das
zwar ideal, aber ziemlich aufwändig und bei manchen Clients eventuell
auch gar nicht möglich (think firmeneigene Rechner oder Smartphones).
Daher müßte der Server auf eine der üblichen Login-Methoden
zurückgreifen, wenn der Client ein "fremdes" Zertifikat präsentiert,
welches nicht von der gemeinsamen CA beglaubigt worden ist. Genau hier
wird das Setup dann ziemlich kniffelig.
Eine einfachere Möglichkeit wäre es, wenn der Vereinsheim-Client über
ein VPN oder einen SSH-Tunnel auf den Server zugreift. Dann kommt der
Client aus Sicht des Servers von einer definierten Adresse wie
beispielsweise localhost (127.0.0.1), und kann darüber authentifiziert
und autorisiert werden. Alle anderen Clients würden die externe
IP-Adresse über HTTPS benutzen, müßten sich über HTTP-Basic-Auth oder
die Applikation anmelden und authentifizieren. Dazu wäre aber ein VPN-
oder ein SSH-Server nötig, den der Vereinsheim-Rechner zugreifen und den
er ohne manuelle Eingriffe durch die Benutzer auf- und abbauen kann.
Liebe Grüße,
Karl
Heinz L. schrieb:> Was Du hier willst kann so leider nicht umgesetzt werden, ausser Du> bindest ActiveX oder Java mit ein (nicht Javascript. Java). Damit könnte> man beispielsweise die CPUID auslesen, die den Rechner identifizieren> würde. Was allerdings natürlich zu Problemen führen wird wenn der> Rechner getauscht werden muss, auch klar.>> Mit "herkömmlichen" Scriptsprachen und anderen browserinternen Tools> kommt man dort nicht hin, weil die aus ihre Sandbox nicht ausbrechen> können (sollten... aber sich auf einen Exploit verlassen ist auch nicht> wirklich 'ne Idee...).
So stimmt das nicht ganz, der Suchbegriff lautet "device fingerprint"
http://en.wikipedia.org/wiki/Device_fingerprint
Ein Beispiel gibt es auf
https://panopticlick.eff.org/index.php?action=log&js=yes
Dabei werden Browser eigene Funktionen genutzt, um eine Kombination aus
Sprache, installierten Fonts, Softwareversionen, installierten Plugins,
ggf. Resultate aus verdecktem Zeichnen, etc. zu gewinnen. Das ist eine
ziemlich einzigartige Kombination, die zwar einem gewissen Drift
unterliegt, aber es erlaubt insbesondere häufig wiederkehrende Besucher
der Webseite zu tracken (nicht zu sprechen von Cookies und ähnlichen
aktiven Maßnahmen). Das taugt aber natürlich für das geschilderte
Anwendungsszenario nur bedingt bis gar nicht.
oder auf dem Client ein eigenes Kleines Tool, das aus nicht mehr
besteht, als einem, html-renderfenster. Da kann man den anzuzeigenden
Link fest vorgeben und auch einen speziellen Identifikationsparameter
(zB als Urlparameter) mitschicken. Ich hscätze mit QT ist sowas relativ
schnell implementiert.