Forum: PC-Programmierung Webseite => bestimmten Rechner identifizieren


von Jens P. (Gast)


Lesenswert?

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

von Peter II (Gast)


Lesenswert?

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.

von wendelsberg (Gast)


Lesenswert?

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

von Pandur S. (jetztnicht)


Lesenswert?

Den Rechner kann durch die IP identifizieren.

von Peter II (Gast)


Lesenswert?

Jetzt Nicht schrieb:
> Den Rechner kann durch die IP identifizieren.

ja, wenn kein Internet dazwischen hängt.

von hauspapa (Gast)


Lesenswert?

>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

von Jens P. (Gast)


Lesenswert?

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

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

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

von Jens P. (Gast)


Lesenswert?

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.

von wendelsberg (Gast)


Lesenswert?

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

von Jens P. (Gast)


Lesenswert?

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.

von Markus H. (markus_h20)


Lesenswert?

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 (:

von Heinz L. (ducttape)


Lesenswert?

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.

von oszi40 (Gast)


Lesenswert?

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.

von Marc S. (marc_s86)


Lesenswert?

gib dem rechner im vereinsheim dyndns und vergleiche dann ob die ip 
stimmt.

von Karl Käfer (Gast)


Lesenswert?

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

von physiker (Gast)


Lesenswert?

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.

von Vlad T. (vlad_tepesch)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.