Andreas Lindig: Konzeptfrage - Usererkennung: einloggen und Cookie parallel?

Hallo Forum,

ich will bei mir eine Registrierungsmöglichkeit erstellen (so wie hier). Bisher werden die User per Cookie erkannt. Wer kein Cookie zuläßt kann halt einige Features nicht nutzen.

Nun bekomme ich aber ein Konzeptproblem:
---------------------------------------
VORINFORMATION: Das Forum versucht bei jedem Neuaufruf ein Cookie zu setzen. Viele Leute werden wohl ein Cookie haben, aber eben nicht alle. Die Cookieinhaber sehen immer automatisch ihre persönliche Sicht auf das Forum. Und wegen der Praktischkeit soll dieser Automatismus auch so bleiben.

  • wenn einer schon ein Cookie hat und sich _dann_ anmeldet (registriert) existieren zwei Informationen: das Cookie und die Zugangsdaten der Anmeldung. Jetzt könnte man den User bei Registrierung ja unter der Nummer seines bisherigen Cookies eintragen und von seinem Rechner aus hat er den gleichen Service wie bisher - muß sich im Normalfall gar nicht anmelden.

  • Wenn aber mehrere User vom gleichen Rechner aus zugreifen, wird der einzelne User seinen Zugang schützen wollen. Dann würde man ihn bei Registrierung unter einer neuen Nummer anlegen. DAS COOKIE BESTEHT ABER WEITER - es wird im Zweifel ja auch immer wieder ein neues angelegt. Das heißt: die Ansicht per Cookie und die per Anmeldung wären zwei verschiedene. Der User könnte seine Identität zwar schützen (wenn er sich immer anmeldet). Aber mir scheint das etwas verwirrend.

Wenn ein User sich nicht so auskennt wundert er sich vielleicht, daß er auch ohne Anmeldung eine Ansicht mit "gelesenen" Beiträgen oder Ähnliches sieht und denkt vielleicht: egal ob ich mich anmelde oder nicht.

Wie würdet Ihr das vom Konzept her machen _und_ dem User das _knapp_ erklären?

Gruß, Andreas

--
Schluß mit der deutschen Sprache ihrer Diskrimination!
  1. Hi,

    Wie würdet Ihr das vom Konzept her machen _und_ dem User das _knapp_ erklären?

    ich würde ein Login bereitstellen und mit Sessions arbeiten. Cookies sind wie JavaScript: absolut optional und für verlässliche Dinge völlig ungeeignet.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo,

    da der Sinn von Cookies eben gerade darin besteht von *dem* Browser auf *dem* Computer immer und ohne nachzufragen an *den* Server übermittelt zu werden, lässt sich das "Problem" für dich nur darin lösen, indem sich die Leute explizit abmelden, woraufhin dein Skript die relevanten Cookies und Sessiondaten löscht.

    Das Konzept des "automatisch anmelden" (der Authentifizierung) funktioniert nur wenn der Computer/Browser von einer einzigen Person verwendet wird, bzw. dort getrennte Benutzerprofile zur Verfügung stehen.

    »» Wie würdet Ihr das vom Konzept her machen _und_ dem User das _knapp_ erklären?

    Wie Cheatah schon sagte helfen hier 'praktisch' nur Serversessions mit knappen Verfallsdatum. Du kannst eine *zweite* Session-ID als zusätzlichen Cookie mit abspeichern. Werden User- und Session-ID dann als Cookie gesendet kannst du vergleichen, wann diese Session für diesen User angelegt wurde und noch gültig ist. Ist sie es nicht (abgelaufen), muss sich der User neu anmelden, d.h. sein Passwort wieder eingeben.

    Ebenso kannst/solltest du auf "permanente" Cookies verzichten und deren Gültigkeit auf die aktuelle Browsersitzung beschränken. Solange der Browser läuft, kann der User jederzeit, ohne Neuanmeldung zurück. Wird er aber geschlossen, werden auch die Cookies automatisch gelöscht.
    Beim erneuten Besuch der Seite/des Forums braucht die Person dann lediglich ihr Passwort eingeben, denn den Usernamen hast du ja schon im Login-Formular vorbelegt :)

    Willst du aber mit permanente Cookies (x-Tage/Wochen/Monate) verwenden, musst du einen Teil der "Sicherheit" auf den User abwälzen:

    [ ] automatisch anmelden (Logindaten als Cookie speichern)

    Wenn der Computer/Browser von mehreren Personen verwendet
        wird  (z.B. Internet-Café, Arbeitsplatz) sollte diese Option
        *nicht* aktiviert werden.
        Um Missbrauch vorzubeugen, solltest du dich daher stets
        aus dem Forum abmelden.

    Ohne ein Stück "Disziplin" auf Seite der User geht es also nicht, und "Sicherheit" ist immer mit ein wenig Unbequemlichkeit verbunden.
    Wer seinen Login "permanent" lokal speichert, muss eben damit rechnen, dass eine andere Person diese Daten verwenden (und missbrauchen) kann.
    Will man das nicht, muss man sich eben explizit abmelden oder dafür sorgen, dass nichts derartiges lokal gespeichert wird. Ein durchschnittlicher Paranoiker wird dies ohnehin tun.

    Dein Job ist es jedoch dafür zu sorgen, dem jeweiligen Sicherheitsbedürfnis des Users entgegen zu kommen, sprich serverseitig zu authentifizieren und Cookies als 200% optional zu betrachten.

    Viel Spaß,
    CirTap

  3. VORINFORMATION: Das Forum versucht bei jedem Neuaufruf ein Cookie zu setzen. Viele Leute werden wohl ein Cookie haben, aber eben nicht alle. Die Cookieinhaber sehen immer automatisch ihre persönliche Sicht auf das Forum. Und wegen der Praktischkeit soll dieser Automatismus auch so bleiben.

    "Praktischheit", das muss ich mir merken. "Praktikabilität" ist ein so furchtbar hubbeliges Wort und "Bequemlichkeit" hört sich so faul an.

    • wenn einer schon ein Cookie hat und sich _dann_ anmeldet (registriert) existieren zwei Informationen: das Cookie und die Zugangsdaten der Anmeldung.

    Wieso sind die Benutzerinformationen im Cookie von den Benutzerinformationen durch Anmeldung und Registrierung getrennt? Warum übernimmst Du nicht einfach die mit dem Cookie verbundenen Daten in den Datensatz des neuen Benutzers?

    Jetzt könnte man den User bei Registrierung ja unter der Nummer seines bisherigen Cookies eintragen und von seinem Rechner aus hat er den gleichen Service wie bisher - muß sich im Normalfall gar nicht anmelden.

    Bislang ungesicherte Kennungen in einen gesicherten Bereich zu übernehmen, halte ich für die schlechtere Lösung.

    • Wenn aber mehrere User vom gleichen Rechner aus zugreifen, wird der einzelne User seinen Zugang schützen wollen. Dann würde man ihn bei Registrierung unter einer neuen Nummer anlegen. DAS COOKIE BESTEHT ABER WEITER

    Wieso besteht es weiter? Du kannst doch nicht eine neue Identität aufmachen und die alten Daten liegen lassen. Ändere die Daten entsprechend Registrierung oder Anmeldung ab oder lösche sie, aber unterlasse Schlampereien.

    es wird im Zweifel ja auch immer wieder ein neues angelegt.

    Wieso denn das nun wieder? Hast Du etwa für dieselbe Funktion zwei Speicherorte? Das ist mit das Ungünstigste, was man machen kann.

    Wenn ein User sich nicht so auskennt wundert er sich vielleicht, daß er auch ohne Anmeldung eine Ansicht mit "gelesenen" Beiträgen oder Ähnliches sieht und denkt vielleicht: egal ob ich mich anmelde oder nicht.

    Wenn auf dem Browserrechner nicht die betriebssystemeigene Benutzerverwaltung genutzt wird, hast Du (ohne eigene Anmeldung) keine Möglichkeit zu prüfen, ob die Person an der Tastatur eine andere ist als noch vor fünf Minuten. Deshalb ist dieses Problem nicht lösbar.

    Biete den registrierten Nutzern die Möglichkeit, sich an- und abzumelden, sowie auszuwählen, ob die Anmeldung dauerhaft sein soll oder nach einigen Minuten Inaktivität automatisch verfällt. Bei dauerhaften Anmeldungen vergiss nicht, vor schreibenden Zugriffen nochmals das Passwort abzufragen.

    1. Hallo Hohlraum,

      "Praktischheit", das muss ich mir merken.

      ich auch ;-)

      hubbeliges Wort

      "hubbelig"... merk ich mir ;-)

      hmm... nach den drei Antworten bisher vermute ich, daß ich mich ziemlich unklar ausgedrückt habe.

      Wieso sind die Benutzerinformationen im Cookie von den Benutzerinformationen durch Anmeldung und Registrierung getrennt?

      weil das unabhängige Vorgänge sind. Ein Cookie wird immer angelegt (versucht). Das kann ich ja nicht abstellen, wenn ein registrierter User kommt - bis der sich angemeldet hat, ist das Cookie schon gesetzt. Ich kann es dann höchstens wieder löschen. Vielleicht müßte man das mit jedem Anmeldevorgang machen, bzw. ein "ungültiges" Cookie setzen (wert=0 o.ä.)?

      Warum übernimmst Du nicht einfach die mit dem Cookie verbundenen Daten in den Datensatz des neuen Benutzers?

      war ja mein Vorschlag. Aber die Daten ändern sich mit der Benutzung des Forums: z.B. sein letzter Besuch, oder er ändert seinen Nickname. Dann unterscheiden sich die beiden Profile.

      • Wenn aber mehrere User vom gleichen Rechner aus zugreifen, wird der einzelne User seinen Zugang schützen wollen. Dann würde man ihn bei Registrierung unter einer neuen Nummer anlegen. DAS COOKIE BESTEHT ABER WEITER

      Wieso besteht es weiter? Du kannst doch nicht eine neue Identität aufmachen und die alten Daten liegen lassen.

      es wird im Zweifel ja auch immer wieder ein neues angelegt.

      Wieso denn das nun wieder?

      weil das Anlegen des Cookies ein Automatismus ist, der den Sinn hat, auch Usern die sich nicht anmelden wollen oder da gar nicht drauf kommen, einen guten Service zu bieten. Ich persönlich würde mich in einem fremden Forum in der ersten Zeit nicht registrieren. Da muß doch erstmal der Inhalt mich binden.

      Hast Du etwa für dieselbe Funktion zwei Speicherorte?

      nö. zunächst wird ein Cookie mit der Usernummer angelegt. Serverseitig werden die Daten gesammelt. Die Datensätze sollen sich dann nur zwischen "normal" (nicht registriert, sondern per Cookie) und "registriert" (mit Username und Passwort) unterscheiden.

      Biete den registrierten Nutzern die Möglichkeit, sich an- und abzumelden, sowie auszuwählen, ob die Anmeldung dauerhaft sein soll oder nach einigen Minuten Inaktivität automatisch verfällt.

      was meinst Du mit "dauerhaft"? - Für die bestehende Sitzung bis zum Ende? Also bisher kann man sich an- und abmelden und es gibt einen Sicherheitsrauswurf nach 10 Minuten.

      CirTap ja auch schon drauf hingewiesen:
      Wahrscheinlich muß ich entscheiden: entweder war von dem Rechner noch nie jemand angemeldet, dann kann die bisherige Cookie-Lösung bleiben. Sobald sich aber einer von dem Rechner aus registriert,wird sein Cookie dauerhaft überschrieben und es sind gewisse Funktionen eben nur noch nach Anmeldung möglich.

      vielen Dank Euch
      Gruß, Andreas

      --
      Schluß mit der deutschen Sprache ihrer Diskrimination!
  4. Hi,

    • wenn einer schon ein Cookie hat und sich _dann_ anmeldet (registriert) existieren zwei Informationen: das Cookie und die Zugangsdaten der Anmeldung.

    OK, wie Cheatah schon sagt: Cookies bestenfalls als nice to have nutzen. Die Cookies koennten z.B. die rechnerspezifischen Einstellungen halten.

    Wenn nun aber, wie es scheint, Cookies Pflicht sind, dann gibts nun mal ein konzeoptionelles Problem und ein Umbau wird erforderlich.

    Jetzt könnte man den User bei Registrierung ja unter der Nummer seines bisherigen Cookies eintragen und von seinem Rechner aus hat er den gleichen Service wie bisher - muß sich im Normalfall gar nicht anmelden.

    OK, ganz huebsch, aber die Anmeldung an ein System sollte doch etwas Normales sein, oder?

    • Wenn aber mehrere User vom gleichen Rechner aus zugreifen, wird der einzelne User seinen Zugang schützen wollen. Dann würde man ihn bei Registrierung unter einer neuen Nummer anlegen. DAS COOKIE BESTEHT ABER WEITER - es wird im Zweifel ja auch immer wieder ein neues angelegt. Das heißt: die Ansicht per Cookie und die per Anmeldung wären zwei verschiedene. Der User könnte seine Identität zwar schützen (wenn er sich immer anmeldet). Aber mir scheint das etwas verwirrend.

    Ja, Murks.

    Wenn ein User sich nicht so auskennt wundert er sich vielleicht, daß er auch ohne Anmeldung eine Ansicht mit "gelesenen" Beiträgen oder Ähnliches sieht und denkt vielleicht: egal ob ich mich anmelde oder nicht.

    Wie würdet Ihr das vom Konzept her machen _und_ dem User das _knapp_ erklären?

    Das Anmelden an ein System wird allgemein als intuitiv empfunden und bedarf keiner besonderen Erklaerung. zudem wirst Du das Problem "Verschiedene Nutzer greifen ueber ein OS-Account auf Deine Loesung zu" gar nicht anders bearbeiten koennen.

    Gruss,
    Ludger

    --
    "Ist der Hund gesund, freut sich der Mensch."