sessions anderer benutzer löschen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • sessions anderer benutzer löschen

    hallo zusammen,

    Wenn bei meinem Script der Loginvorgang erfolgreich war, wird für den User eine Session erstellt und außerdem eine Variable $_SESSION['variable'] mit dem Wert seiner user-id erstellt. Nun könnte die Situation entstehen, dass der Admin diesen User zum Logout zwingen möchte, also dessen Session zerstört oder als ungültig erklärt wird. Der Admin hat nur den Wert der user-id dieses Users zur Verfügung.

    Wäre das irgendwie möglich ?

    MfG

  • #2
    Mittels einer DB sollte das kein Problem sein. In dieser speicherst du User ID und zugehörige Session ID.
    Die Sessions werden ja als einzelne Ordner angelegt, mit den jeweiligen Session Vars als Inhalt.
    Jetzt hat der Admin die Möglichgkeit 1. den kompletten Ordner zu löschen entspräche etwa
    PHP-Code:
    unset($_SESSION); 
    oder er greift 2. direkt auf den Inhalt des Ordners zu und pustet die entsprechende Session Var raus. Dies entspräche
    PHP-Code:
    unset($_SESSION['name']); 
    Vllt hat jemand noch eine andere Idee, aber ich denke so müsste es funzen.

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      ich persönlich weiss ja nicht genau wie sessions (auf dem server) funktionieren.

      mir geht es darum dass in meinem Script User vom Admin gebannt werden können. Dafür wird vom Admin in der Datenbank das Feld "banned" beim entsprechenden User auf "1" gesetzt. Ich könnte jetzt am Anfang meiner Seite ein Script aufbauen das überprüft, ob der eingeloggte User gebannt ist und dann die Session zerstören. Was mich aber eher interessiert ist die Möglichkeit, wie man Sessions ANDERER Leute (also nicht meine eigene) zerstören kann.

      MfG

      Kommentar


      • #4
        Original geschrieben von jahlives
        Die Sessions werden ja als einzelne Ordner angelegt, mit den jeweiligen Session Vars als Inhalt.
        seit wann denn das? Ich kann mich dunkel erinnern, dass da pro Session ein File in /tmp liegt...


        schreibe doch den Session-Handler auf eine Datenbank-Tabelle um, speichere da die user_id neben dem serialized-session-string und dann kannst du die Dinger anhand der user_id löschen

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Original geschrieben von NameZero912
          ich persönlich weiss ja nicht genau wie sessions (auf dem server) funktionieren.

          mir geht es darum dass in meinem Script User vom Admin gebannt werden können. Dafür wird vom Admin in der Datenbank das Feld "banned" beim entsprechenden User auf "1" gesetzt. Ich könnte jetzt am Anfang meiner Seite ein Script aufbauen das überprüft, ob der eingeloggte User gebannt ist und dann die Session zerstören. Was mich aber eher interessiert ist die Möglichkeit, wie man Sessions ANDERER Leute (also nicht meine eigene) zerstören kann.

          MfG
          Wenn ich das richtig versteh:
          Du willst als NICHT-ADMIN die Sessions anderer User zerstören???
          Böser Junge!

          Kommentar


          • #6
            Original geschrieben von Koala
            Wenn ich das richtig versteh:
            Du willst als NICHT-ADMIN die Sessions anderer User zerstören???
            Böser Junge!
            Nein - er will, so wie ich das verstehe, als Admin in die Sessions anderer User eingreifen können. Um sie bannen zu können ...?

            Ziemlich unsinniges Konzept, würde ich sagen - und sicher auch fehleranfällig, fremde Sessions manipulieren zu wollen.

            Wenn ein User gebannt werden soll, sollte dafür ein Eintrag in der Usertabelle (auf der Datenbank) erfolgen.
            Wenn dann die Daten nach dem Einloggen nicht mehr aktualisiert werden, ist er halt erst beim nächsten Einlogge-Versuch gebannt.
            Wenn das nicht reichen sollte, dann muss man halt zwischendurch die Session mit der DB abgleichen - entweder bei jedem Zugriff (ggf. ungünstig für die DB-Performance) - oder bei jedem xten (Zähler in Session mtilaufen lassen, wenn "voll" -> Abgleich mit DB) ...
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              falsch, ich möchte als ADMIN die sessions anderer user löschen. aber wie kann ich dem server sagen welche session er löschen soll ? was hier manche geschrieben haben, von wegen
              PHP-Code:
              unset($_SESSION); 
              nützt mir nichts, da dies meine eigene session zerstören würde, aber ich möchte wie gesagt die anderer user zerstören.

              und ja, die welt will ich auch zerstören, wie macht man das ?

              Kommentar


              • #8
                Original geschrieben von wahsaga
                Wenn ein User gebannt werden soll, sollte dafür ein Eintrag in der Usertabelle (auf der Datenbank) erfolgen.
                Wenn dann die Daten nach dem Einloggen nicht mehr aktualisiert werden, ist er halt erst beim nächsten Einlogge-Versuch gebannt.
                Wenn das nicht reichen sollte, dann muss man halt zwischendurch die Session mit der DB abgleichen - entweder bei jedem Zugriff (ggf. ungünstig für die DB-Performance) - oder bei jedem xten (Zähler in Session mtilaufen lassen, wenn "voll" -> Abgleich mit DB) ... [/B]
                Dieser Eintrag in der DB erfolgt ja auch, hatte ich ja geschrieben in meinem zweiten Posting . Und gebannte User können sich auch in der Tat nicht mehr einloggen

                Und es ist gerade dieser Sachverhalt dass ein User den ich gerade gebannt habe ja trotzdem noch eingeloggt sein könnte und etwas auf der Seite macht, den ich verhindern will. Wie ich bereits geschrieben habe ginge das so:
                Ich könnte jetzt am Anfang meiner Seite ein Script einbauen das überprüft, ob der eingeloggte User gebannt ist und dann seine Session zerstören
                Wäre möglich, aber ist wie gesagt nicht so ganz optimal. Aber wie es aussieht werde ich es wohl so realisieren müssen =/

                MFG

                Kommentar


                • #9
                  nützt mir nichts, da dies meine eigene session zerstören würde, aber ich möchte wie gesagt die anderer user zerstören
                  Ich habe nicht geschrieben, dass du unset($_SESSION) machen müsstest, sondern, dass wenn du das Verzeichnis mit dem Namen der Session ID löscht, dies auf unset($_SESSION) hinauslaufen würde. Sprich alle der Session ID zugeordneten Session Vars werden gelöscht.

                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar

                  Lädt...
                  X