merkwürdiges Phänomen

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

  • merkwürdiges Phänomen

    Hallo!

    Ich habe eine Seite auf der so rund 100.000 registrierte Mitglieder sind.
    Diese Seite läuft nun seit Sommer 2003 ohne Probleme.

    Seit einigen Wochen beschweren sich Mitglieder darüber, dass sie sich nicht mehr einloggen können, bzw. sich nach jedem Klick neu einloggen müssen. Ich habe das Gefühl, dass die beschwerden ständig zunehmen.

    Der Login funtioniert ganz normal via Formular (username + pass).
    Ich verwende eine Session um den Login zu checken.
    Nach erfolgtem Login wird die entsprechende Sessionvariable von "Gast" auf "Mitglied" gesetzt und der User hat dann volle Rechte.
    Das Sitzungscookie ist das einzigste Cookie, welches gesetzt wird.



    Ich bin so langsam am Verzweifeln...
    Ich kann dieses Phänomen nicht nachvollziehen...
    Habe nun sämtliche Browser, Betriebssysteme (auch Linux) gecheckt doch konnte ich mich jedesmal ohne Problem einloggen.

    Solange ich cookies akzeptiere (Oder halt beim IE 7 "Sitzungscookies") läuft der Login ohne Probleme.

    Wo würdet ihr nun anfangen zu suchen?

  • #2
    hat wohl irgendwas mit sessions zu tun. was genau - wirst du selbst herausfinden müssen.

    Kommentar


    • #3
      Würde eine FIrewall das Senden des Cookies vom Benutzer zum Server evtl. unterbinden können?

      Kommentar


      • #4
        solange sie beim benutzer installiert ist - ja. aber sie wird es nicht tun. bei cookies wird die akzeptanz verweigert, nicht das "versenden".

        Kommentar


        • #5
          ich hab sowas mal bei www.triff-chemnitz.de gesehen. da hatte es irgendwas mit der datenbank zu tun. das ist immer frühs aufgetreten.

          Das Anmeldeproblem früh morgens ist identifiziert. Es handelt sich um eine Berechnung auf der Datenbank, welche die Verteilung eine zeitlang asynchron werden läßt. Diese ist ab sofort erstmal deaktiviert.
          vielleicht mal in die richtung schauen!

          Kommentar


          • #6
            OK...

            Ich habe das mit einem sehr geduldigen Mitglied verfolgen können...

            Er hat sich bei mir eingloggt -> Cookie wurde gesetzt (Er hat das mit dem Cookie Manager des Firefox Browsers geprüft).
            Beim nächsten Klick kam erneut die Aufforderung, er müsse sich einloggen.
            Das Cookie war aber laut FF Browser noch vorhanden.
            Also schließe ich daraus: Das Cookie bzw. dessen Inhalt konnte von unserem Server nicht gelesen werden.

            Oder sehe ich das falsch?

            Kommentar


            • #7
              nicht "vom server gelesen", sonder "vom client verschickt".
              schau dir die übertragenen http headers an (und zeige sie vielleicht hier).

              Kommentar


              • #8
                Uh...

                ich glaube, ich habe das Problem soeben gefunden...
                Und zwar wird ein User (wenn er denn dann eingeloggt ist) als "eingeloggter" User in eine MySQL Tabelle geschrieben.

                Dabei werden User Name, IP, user_agent und PHPSESSID eingetragen.

                Wenn ich den user_agent eintrage mache ich das brav mit einem addslashes($USER_AGENT);

                Wenn ich aber nach dem Login den USER_AGENT aus der DB auslese und ihn mit dem USER_AGENT des users vergleiche, fehlte das "stripslashes();"
                Das fällt ja nicht bei jedem ins Gewicht, sorgt aber bei einigen dafür, dass das als != erkannt wird, und der User fliegt raus.

                Das sollte es evtl. gewesen sein....

                Kommentar


                • #9
                  ich hab sowas mal bei www.triff-chemnitz.de gesehen
                  OffTopic:
                  interessant ... die Seite wird weder im Firefox noch im Internet Explorer richtig dargestellt ...
                  Du solltest vielleicht einfach die Logins mitloggen dann siehst du ja wer sich nach kurzer Zeit immer wieder einloggt und kannst damit auf den Fehler schließen ... nur mal für die Zukunft.
                  Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                  Kommentar


                  • #10
                    Wenn ich aber nach dem Login den USER_AGENT aus der DB auslese und ihn mit dem USER_AGENT des users vergleiche, fehlte das "stripslashes();"
                    Ähm, du weißt aber schon, dass die slashes in der DB nichts zu suchen haben???

                    Kommentar


                    • #11
                      Original geschrieben von TobiaZ
                      Ähm, du weißt aber schon, dass die slashes in der DB nichts zu suchen haben???
                      Und warum nicht?

                      greets
                      (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                      Kommentar


                      • #12
                        gegenfrage: Warum sollte man sie darin speichern. Du speicherst auch keine zusätzlichen @s oder Gs oder = oder sonst was darin.

                        Kommentar


                        • #13
                          Original geschrieben von TobiaZ
                          gegenfrage: Warum sollte man sie darin speichern. Du speicherst auch keine zusätzlichen @s oder Gs oder = oder sonst was darin.
                          Nein zusätzliche nicht, aber wenn sie zum beispiel zu textdaten
                          gehören, dann nehm ich sie doch nicht da raus.

                          greets
                          (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                          Kommentar


                          • #14
                            Nein es geht ja auch um die "escapenden" Slashes.
                            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                            Kommentar


                            • #15
                              Original geschrieben von TobiaZ
                              Ähm, du weißt aber schon, dass die slashes in der DB nichts zu suchen haben???
                              Auch auf die Gefahr hin, dass wir gerade aneinander vorbeireden....

                              Wenn ich den Wert 'sdksdfklklsdfkjlkmnvn"ydkfkjf"djdjdjdj' in eine DB schreiben will, komme ich wohl nicht um ein addslashes(); drumrum, oder?

                              Da der Inhalt der Variable $USER_AGENT einen Wert mit einem " haben kann (in diesen Fällen war das auch so) sollte ich wohl addslashes(); benutzen.

                              Lese ich dann den Wert, muss ich natürlich stripslashes(); nutzen, da sonst das Vergleichen natürlich fehlschlägt.

                              Da es nun 100% funktioniert war der Fehler auch dort zu suchen.

                              Kommentar

                              Lädt...
                              X