$xNeTworKx.: (PERL) Anmelden bei einem Board.

Hi,

Die Umstände auf meiner Webseite zwingen mich dazu, ein Board zu programmieren, bei dem man sich anmelden muss, und das ist eigentlich auch schon das Problem.
Zum einen könnte ich mit Cookies arbeiten, aber was wäre, wenn jemand Cookies deaktiviert hat ?
Zum anderen könnte ich Name,Passwort mit jedem Link mitschicken, und bei jeder Subroutine überprüfen, ob Name und PW mit einem der regisitrierten Namen übereinstimmt, was ich aber als ziemlich uneffizient und umständlich halte, und deswegen wollte ich fragen, wie man sowas am Besten und Effizientesten (ohne relationale Datenbank) machen könnte ?

$xNeTworKx.

  1. Hi,

    Zum anderen könnte ich Name,Passwort mit jedem Link mitschicken, [...] was ich aber als ziemlich uneffizient und umständlich halte,

    vor allem wäre es ein Sicherheitsrisiko - das Passwort würde bei jedem Request im Klartext in der URL übermittelt werden, also i.d.R. auch im Referer stehen. Beschäftige Dich mit dem Prinzip von Sessions.

    Cheatah

    1. Hi,

      vor allem wäre es ein Sicherheitsrisiko - das Passwort würde bei jedem Request im Klartext in der URL übermittelt werden, also i.d.R. auch im Referer stehen. Beschäftige Dich mit dem Prinzip von Sessions.

      Naja, ich hätte das PW natürlich irgendwie codiert, aber die Idee fand ich sowieso nicht wirklich toll.
      Zu Sessions. Sessions sind ja auch im Prinzip nur Cookies, oder doch nicht ?

      $xNeTworKx.

      1. Hi,

        Zu Sessions. Sessions sind ja auch im Prinzip nur Cookies, oder doch nicht ?

        nein. Sessions sind ein abstraktes Prinzip, um requestübergreifend Daten halten und dem User zuordnen zu können. Ob Du die User-Identifizierung über Cookies löst, über URL-Parameter oder sonstwie, ist eine andere Sache. Vor allem identifizierst Du sie aber mit einem String, der neben der Eindeutigkeit und Zuordenbarkeit nicht den geringsten weiteren Sinn hat - Laufzeit, Daten etc. stehen dann anderswo.

        Cheatah

        1. Hi,

          nein. Sessions sind ein abstraktes Prinzip, um requestübergreifend Daten halten und dem User zuordnen zu können. Ob Du die User-Identifizierung über Cookies löst, über URL-Parameter oder sonstwie, ist eine andere Sache. Vor allem identifizierst Du sie aber mit einem String, der neben der Eindeutigkeit und Zuordenbarkeit nicht den geringsten weiteren Sinn hat - Laufzeit, Daten etc. stehen dann anderswo.

          Hmmm. Ich kann mir das jetzt irgendwie nicht ganz vorstellen. Wie würde grob gesagt jetzt so ein Session funktionieren ?

          Also etwas so mein ich das jetzt : User -> Anmeldung -> .... ?

          $xNeTworKx.

          1. use Mosche;

            Hmmm. Ich kann mir das jetzt irgendwie nicht ganz vorstellen. Wie würde grob gesagt jetzt so ein Session funktionieren ?

            Also etwas so mein ich das jetzt : User -> Anmeldung -> .... ?

            Jeder User bekommt, wenn er die Seite besucht, einen eindeutigen String zugewiesen (wenn er noch keine hat). Du kannst anhand dieses Strings Serverseitig Dinge speichern: zB: Username (zur Authentifizierung), Formulardaten, ...
            Ein Session-string bleibt während des gesamten Besuchs aktiv und wird meist nach einer gewissen Wartezeit gelöscht (um Platz für neue Besucher zu schaffen).

            use Tschoe qw(Matti);

            1. Hi,

              Jeder User bekommt, wenn er die Seite besucht, einen eindeutigen String zugewiesen (wenn er noch keine hat). Du kannst anhand dieses Strings Serverseitig Dinge speichern: zB: Username (zur Authentifizierung), Formulardaten, ...
              Ein Session-string bleibt während des gesamten Besuchs aktiv und wird meist nach einer gewissen Wartezeit gelöscht (um Platz für neue Besucher zu schaffen).

              Hmmm, womit ich irgendwie wieder bei meinem Problem wäre, wie ich die User identifizieren kann. Aber du hast mich auf eine Idee gebracht. Wenn ich so einem String, die aktuelle IP zuweise, müsste es eigentlich funktionieren, da sich die IP ja nicht ändert, solange der User online ist.

              danke, $xNeTworKx.

              1. Hi,

                Wenn ich so einem String, die aktuelle IP zuweise, müsste es eigentlich funktionieren, da sich die IP ja nicht ändert, solange der User online ist.

                das kommt sogar sehr häufig vor, darauf kannst du dich also nicht verlassen.

                LG Orlando

                1. Hi,

                  Wenn ich so einem String, die aktuelle IP zuweise, müsste es eigentlich funktionieren, da sich die IP ja nicht ändert, solange der User online ist.

                  das kommt sogar sehr häufig vor, darauf kannst du dich also nicht verlassen.

                  Ja, aber während er den Browser offen hat, ändert sich nicht plötzlich die IP. Erst wenn er wieder neu ins Internet geht, oder doch nicht ?
                  Wenn doch, wäre ich wieder bei meinem ursprünglichen Problem. Wie funktioniert am Besten das Anmelden bei einem Forum :)

                  $xNeTworKx.

                  1. Hallo,

                    Ja, aber während er den Browser offen hat, ändert sich nicht plötzlich die IP. Erst wenn er wieder neu ins Internet geht, oder doch nicht ?

                    Leitung bricht zusammen, wählt sich neu ein und lässt Browserfenster offen. Noch Fragen? ;)

                    Aber im Ernst: Schau' Dir mal bei PHP (ja!) die Session-Doku an und dann kannst Du die *Konzepte* auf Perl übertragen. Sessions sind der einzige gangbare Weg.

                    Wenn doch, wäre ich wieder bei meinem ursprünglichen Problem. Wie funktioniert am Besten das Anmelden bei einem Forum :)

                    Mit Sessions.

                    Ach ja, nur so aus Neugier: (hat mit dem Problem nichts zu tun) Was ist es denn nun? Ein Forum oder ein Board?

                    Grüße,

                    Christian

                    1. Hi,

                      Ja, aber während er den Browser offen hat, ändert sich nicht plötzlich die IP. Erst wenn er wieder neu ins Internet geht, oder doch nicht ?

                      Leitung bricht zusammen, wählt sich neu ein und lässt Browserfenster offen. Noch Fragen? ;)

                      Nein :)

                      Aber im Ernst: Schau' Dir mal bei PHP (ja!) die Session-Doku an und dann kannst Du die *Konzepte* auf Perl übertragen. Sessions sind der einzige gangbare Weg.

                      Ok, dann bleibt mir wohl nichts über.

                      Ach ja, nur so aus Neugier: (hat mit dem Problem nichts zu tun) Was ist es denn nun? Ein Forum oder ein Board?

                      Ein Board.

                      Aber dadurch, dass man ohne Registrierung posten kann, schreibt hier und da so mancher einfach irgendwelchen Blödsinn rein, und mit Anmelden könnte ich dann Benutzer einfach sperren, und neue Anmeldungen verbieten, was ich bis jetzt noch mit .htaccess und deny from ... löse.

                      $xNeTworKx.