Werbung / Banner buchen
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: $_SESSION['SESSION_USER_AGENT'] != $http_user_agent

    Ello

    • Neu im Forum
    • Beiträge: 37
    Hiho,

    bin gerade dabei unseren Shop umzukrempeln und benutze dazu unter anderem FirePHP als Debugger.
    Jetzt habe ich folgendes Problem.

    FirePHP kann man ja auf aktiv und auf inaktiv stellen. Der Shop aktiviert FirePHP nur wenn der User ne Bestimme IP hat (Die unserer Firma). Soweit so gut.

    Wir hatten jetzt aber öfters das Phänomen, dass manche Entwickler/Tester sporadisch auf die Login gekickt werden, und keiner wusste warum.

    Ich habe jetzt jetzt rausgefunden es liegt an der zeile in der application_top.php

    Code: PHP  [Auswählen]
    // verify the browser user agent if the feature is enabled
    if (SESSION_CHECK_USER_AGENT == 'True')
    {
        $http_user_agent = strtolower($_SERVER['HTTP_USER_AGENT']);
        $http_user_agent2 = strtolower(getenv("HTTP_USER_AGENT"));
        $http_user_agent = ($http_user_agent == $http_user_agent2) ? $http_user_agent : $http_user_agent.';'.$http_user_agent2;

        if (!isset ($_SESSION['SESSION_USER_AGENT']))
        {
            $_SESSION['SESSION_USER_AGENT'] = $http_user_agent;
        }

        if ($_SESSION['SESSION_USER_AGENT'] != $http_user_agent)
        {
            session_destroy();
            xtc_redirect(xtc_href_link(FILENAME_LOGIN));
        }
    }
     

    Das Problem dabei ist jetzt nicht, dass es nicht funktioniert oder die Zeilen nicht richtig sind, es liegt nur daran, dass FirePHP (oder eventuell auch andere Firefox Plugins, k.A.) den User Agent ändern, sobald er etwas zum "loggen" gefunden hat.

    Normaler User-Agent, bei keiner FirePHP Meldung
    Code: PHP  [Auswählen]
    'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/11.0.0'
     

    User-Agent bei aktivem FirePHP
    Code: PHP  [Auswählen]
    'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/11.0.0 FirePHP/0.7.0'
     

    Was nun zur Folge hat dass man beim navigieren auf der Seite  auf die Login gekickt wird (Passiert dann z.B. wenn man in der checkout auf zB sofortüberweisung geleitet wird, dadurch der FirePHP sich ausschaltet und den User Agent zurücksetzt und man nach erfolgreichem Zahlen wirder zurück kommt, der user Agent nicht mehr gleich ist und man zur Login gekickt wird, ohne die checkout_success zu sehen.

    Meine Frage ist jetzt:

    Was hat die SESSION_CHECK_USER_AGENT überhaupt für einen Nutzen, bzw kann ich sie gutem Gewissens ausschalten? Weil dadurch ist das Problem ja weitesgehend behoben, oder nicht?

    Linkback: https://www.modified-shop.org/forum/index.php?topic=19089.0
    Shop Hosting

    hendrik

    • Experte
    • Beiträge: 2.038
    Re: $_SESSION['SESSION_USER_AGENT'] != $http_user_agent
    Antwort #1 am: 22. März 2012, 17:11:52
    Das ist eine Funktion um die (unautorisierte) Übernahme einer Session zu erschweren. Jemand der eine fremde gültige Session-ID ergattert kann nur dann unter fremder Identität anmelden wenn er auch eine identische User agent-Kennung hat. Nicht unmöglich aber erschwerend.

    Kann man drauf verzichten.

    Gruß
    Hen

    Ello

    • Neu im Forum
    • Beiträge: 37
    Re: $_SESSION['SESSION_USER_AGENT'] != $http_user_agent
    Antwort #2 am: 22. März 2012, 17:14:56
    Jo danke, sowas Ähnliches hatte ich mir auch gedacht.

    Ich frag Cheffe und dann denk ich schalt ich's einfach aus.
    rechtstexte für onlineshop
    0 Antworten
    1858 Aufrufe
    24. Januar 2012, 16:24:59 von Ello
    2 Antworten
    2736 Aufrufe
    17. Februar 2010, 17:28:29 von jpfeifer
    2 Antworten
    2255 Aufrufe
    29. November 2011, 12:39:39 von DokuMan
    4 Antworten
    21888 Aufrufe
    15. November 2011, 13:38:28 von Tomcraft