Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware
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: Funktionsweise der Authentifizierung / Session weiterverwenden

    kirt

    • Neu im Forum
    • Beiträge: 15
    Hallo,

    ich möchte gerne eine bestehende Admin-Session (erfolgreiche Anmeldung eines Admins an XTC) auf einer externen Seite weiter verwenden:

    1) Login erfolgt im Shop
    2) In "admin/includes/column_left.php" habe ich einen neuen Link zu einer externen Seite eingebaut
    3) An diese Seite soll nun die bestehenden Session übergeben und dort geprüft werden (hierbei sollen im Idealfall möglichst wenig XTC Includes und/oder Funktionen geladen werden)

    Fragen:

    1) Wie muss ich den Link aufbauen, um die besteheden Session zu übergeben
    2) Welche XTC Dateien/Funktionen muss ich in der externen Seite laden
    3) Wie prüfe ich in der externen Seite die Session

    Gibt es ggf. irgendwo ein Big-Picture der Authentifizierung (Verfahren, benötigte Dateien/Funktionen, verwendete Tabellen ...)

    Danke
    Kirt

    Linkback: https://www.modified-shop.org/forum/index.php?topic=31762.0
    Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Funktionsweise der Authentifizierung / Session weiterverwenden
    Antwort #1 am: 15. Dezember 2014, 15:10:36
    Session als GET-Parameter an die URL hängen ?
    Was meinst du mit "prüfen" ?, ob die Session die übergeben wurde noch die ursprüngliche ist ?
    Ein paar mehr Informationen wären gut.
    Z.B.
    • Wo geht der Link hin ?, auf die gleiche Domain  (z.B. Subdomain) oder eine völlig andere Domain ?
    • Was soll die verlinkte Seite machen/können, will sagen, warum benötigst du da die Session ?

    Handelt es sich z.B. um eine Subdomain kannst du das Cookie mit der Session-ID des modified-Shops auslesen.

    Wenn du allerdings prüfen möchtest ob der User im modified-Shop eingeloggt ist und möchtest das Login für die andere Seite übernehmen, benötigst du nicht die Session-ID sondern die $_SESSION['customer_id'].

    Gruß,
    noRiddle

    kirt

    • Neu im Forum
    • Beiträge: 15
    Re: Funktionsweise der Authentifizierung / Session weiterverwenden
    Antwort #2 am: 15. Dezember 2014, 15:34:37
    Hallo noRiddle,

    danke für das Feedback.

    Ich möchte Funktionalität für die Shopadministration ergänzen, das aber weitgehend vom bestehenden Code entkoppeln.

    1)
    Der zusätzliche Link in der Adminnavigation führt auf eine PHP-Seite unter der selben Domain und dem selben VirtualHost, in dem der Shop läuft.

    2)
    Ein eingeloggter (Admin)user soll diesen Link anklicken und der verlinkten Seite die Information bereitstellen, dass er bereits angemeldet ist. (Wie auch immer.)

    3)
    Die verlinkte Seite (also die neue unabhängige Adminseite innerhalb des selben VHosts), soll die Anmeldeinformationen prüfen, so dass nur Nutzer mit gültiger (Admin)anmledung Zugriff auf die Funktionen dieser Seite haben.

    Unter dem Strich möchte ich auf einer neuen Seite im selben Host die erfolgte Anmeldung weiterverwenden.

    Danke
    Kirt

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Funktionsweise der Authentifizierung / Session weiterverwenden
    Antwort #3 am: 15. Dezember 2014, 15:45:53
    Gut und schön, nur, wenn die besuchte PHP-Seite vom Shop abgekoppelt sein soll, wie willst du dann den eingeloggten Zustand überprüfen, hast ja keine Connection zur modified-DB ?
    Ich würde es mittels Anhängen folgender Werte an die URL lösen:
    - $_SESSION['customer_id']
    - $_SESSION['customers_status']['customers_status_id']

    Der erste Wert ist leer wenn man nicht angemeldet ist, der zweite sollte 0 für Admin sein.
    Also URL z.B. so generieren:
    DEINE_DOMAIN.TLD/DEIN_ORDNER/DEINE_PHP_DATEI?sessid=(int)$_SESSION['customer_id']&cusstat=(int)$_SESSION['customers_status']['customers_status_id']
    Im Skript dann abfragen ob $_GET['sessid'] gesetzt ist und ob $_GET['cusstat'] == 0 ist, andernfalls irgendeine Error-Meldung ausgeben.

    Gruß,
    noRiddle

    peterdd

    • Neu im Forum
    • Beiträge: 31
    Re: Funktionsweise der Authentifizierung / Session weiterverwenden
    Antwort #4 am: 15. Dezember 2014, 17:46:17
    Zitat
    Ich möchte Funktionalität für die Shopadministration ergänzen, das aber weitgehend vom bestehenden Code entkoppeln.

    Naja ganz schön schwammig die Anforderung. Was willst du ergänzen? Warum und was soll vom bestehenden Code entkoppelt sein? Kann das auch mit PHP erledigt werden?

    Aber wenn ichs richtig verstanden hab soll es ein zusätzliches Admininterface zum Shop sein.

    Ich mache soetwas auch, um bestimmte Unzulänglichkeiten des Shops/Adminbereiches zu kompensieren.
    Ich nutze aber die Grundfunktionalität der Shopsoftware wie die Sessions und Zugriffskontrolle für den Adminbereich mit admin_access.

    1. Also mach dir eine PHP-Datei analog den Dateien wie z.B. admin/customers.php , die die admin/includes/application_top.php lädt.
    2. Bau den Link zur Datei im Adminbereich ein

    Dann wird bei Aufruf deiner Datei zugriff angemeckert und man kommt zu Schritt 3:
    3. Erweitere die Tabelle admin_access um ein Feld für deine Datei und vergib die Nutzerrechte.
    (kann man quick&dirty mit phpmyadmin in der Tabelle admin_access machen)

    kirt

    • Neu im Forum
    • Beiträge: 15
    Re: Funktionsweise der Authentifizierung / Session weiterverwenden
    Antwort #5 am: 15. Dezember 2014, 18:35:48
    @noRiddle:

    Ich glaube ich beschreibe das zu kompliziert. Mein PHP Script läuft im selben Host, unter der selben Domain, hat Zugriff auf die DB. Allerdings möchte ich keinen PHP Code des Shops weiterverwenden damit Shop-Updates meine eigenen Scripte nicht beeinflussen.

    Da ich mich mit XTC nicht richtig auskenne weiß ich aber nicht, wie ich einen bereits eingeloggten Nutzer authentifizieren kann. Eine getrennte Authentifizierung wäre nun für den Admin aber wirklich blöd, da er sich dann an zwei Systemen anmelden muss.

    Hoffe das war nun etwas verständlicher :)

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Funktionsweise der Authentifizierung / Session weiterverwenden
    Antwort #6 am: 15. Dezember 2014, 19:11:08
    Wie bereits gesagt wird die Prüfung mittels der Prüfung ob die
    $_SESSION['customers_status']['customers_status_id'] == 0 für die gesetzte $_SESSION['customer_id'] ist gemacht.

    Wenn du die Parameter, wie von mir vorgeschlagen, per URL überträgst, mußt du natürlich absichern, daß niemand die Parameter fake-n kann, also selbst die ihm evtl. bekannte URL so aufrufen kann
    DEINE_DOMAIN.TLD/DEIN_ORDNER/DEINE_PHP_DATEI?sessid=1&cusstat=0und somit Zugriff auf die Datei hat.
    1 ist der Ur-Admin und 0 ist der Kundenstatus Admin.
    Das Schützen wird ohne Plan schwer möglich sein, weshalb das Einbinden der /admin/includes/application_top.php in die Datei quasi Pflicht ist.
    Zumindest aber müsstest du die /includes/write_customers_status.php include-n um die Sessions nicht mittel URL übertragen zu müssen.

    Fazit:
    Mach's nicht wie von mir gesagt mit Übertragung durch die URL, das geht nach hinten los wenn man nicht weiß wie man das absichern kann.

    Falls du ein wenig Ahnung von PHP hast kannst du die genannten Parameter verschlüsselt übergeben und in deinem Skript wieder entschlüsseln.
    So kann niemand die URL fake-n.

    Das was ich hier schreibe sind Hilfestellungen und Gedanken zu deiner Frage.
    Mach bloß nicht irgendwas ohne zu wissen was du tust, das ist gefährlich.


    Gruß,
    noRiddle

    p3e

    • Experte
    • Beiträge: 2.424
    Re: Funktionsweise der Authentifizierung / Session weiterverwenden
    Antwort #7 am: 16. Dezember 2014, 16:28:43
    Wenn das auf dem selben Host läuft, kannst Du doch die Session weiter nutzen. Lese dich mal ein wenig über Sessions schlau ;) und denke daran was noRiddle schreibt. Pass gut auf, dass Du Dir da keine Sicherheitslücke einbaust.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Funktionsweise der Authentifizierung / Session weiterverwenden
    Antwort #8 am: 17. Dezember 2014, 15:11:31
    Wenn das auf dem selben Host läuft, kannst Du doch die Session weiter nutzen....

    ...und folglich auch das Cookie mit der Session-ID auslesen.

    Gruß,
    noRiddle
    rechtstexte für onlineshop
    7 Antworten
    5436 Aufrufe
    13. September 2012, 11:54:39 von tonkelz
    9 Antworten
    8326 Aufrufe
    12. April 2012, 12:32:42 von supertorti
    32 Antworten
    13120 Aufrufe
    03. April 2011, 03:17:35 von adrach