Autom. Login im Frontend

Gesperrt
mko
Beiträge: 123
Registriert: Di 1. Feb 2005, 10:26
Wohnort: Österreich
Kontaktdaten:

Autom. Login im Frontend

Beitrag von mko » Mi 23. Nov 2011, 09:14

Liebes Forum!

Ich möchte den Usernamen und das Passwort eines gesperrten Bereiches in Contenido in der URL mitgeben. Dazu habe ich das Standard-Loginscript von POST auf GET umgestellt. Wenn ich den Browser öffne und die URL das erste mal aufrufe, klappt alles. Wenn ich es dann nochmals versuche nicht mehr ??? In manchen Browsern werde ich auf die Loginseite umgeleitet, in manchen wird die Seite nicht mehr geladen.

Ziel ist eine Webseite mit inkludiertem Intranet, das anhand der IP Adresse das Login umgehen soll.

Wer weiss eine Lösung?

lg
Markus

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Autom. Login im Frontend

Beitrag von Spider IT » Mi 23. Nov 2011, 10:01

Hallo Markus,

bei deinem Vorhaben ist der Ansatz evtl. nicht ganz richtig.
Aber da das System anscheinend (ich habe es nicht getestet) GET-Daten verarbeitet, habe ich mir folgendes überlegt:
  • Prüfung ob bereits angemeldet (wie bisher)
  • Wenn nicht angemeldet, Prüfung der IP-Adresse (Angangsteil muss zum internen Netz passen)
  • Wenn IP-Adresse richtig, Anmeldedaten per Redirect verschicken
Sonst bleibt alles beim Standard, andere Besucher bekommen ein Login-Formular angezeigt.

Ich habe das mal in dem Login-Modul der 4.6er Reihe eingearbeitet:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Loginbox
* Author(s)   :     Andreas Lindner
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     05.08.2005
************************************************/

#Includes
cInclude('classes', 'class.template.php');

if ( !is_object($tpl) ) {
    $tpl = new Template;
}
$tpl->reset();

if ($auth->auth['uid'] == 'nobody') {
    if (substr($_SERVER['REMOTE_ADDR'], 0, 8) == '192.168.') {
        # Redirect mit Login-Daten fuer Intranet
        header('Location: ' . $sess->url('front_content.php?idcat=' . $idcat . '&idart=' . $idart . '&username=xxx&password=yyy'));
        # und zur Sicherheit per JavaScript
        echo '<script type="text/javascript">document.location.href = "' . htmlentities($sess->url('front_content.php?idcat=' . $idcat . '&idart=' . $idart . '&username=xxx&password=yyy')) . '";</script>';
    } else {
        $template = 'login.html';
        
        $tpl->set('s', 'FORM_ACTION', 'front_content.php?idcatart='.$idcatart); 
        $tpl->set('s', 'USERNAME', mi18n("Benutzername"));  
        $tpl->set('s', 'PASSWORD', mi18n("Passwort"));  
        $tpl->set('s', 'GO', mi18n("Go"));  
        $tpl->set('s', 'LOGIN', mi18n("Login"));    
    }
} else {
    $template = 'logout.html';

    $tpl->set('s', 'CURRENT_USERNAME', mi18n("Sie sind angemeldet als"));   
    $tpl->set('s', 'USERNAME', $auth->auth["uname"]);   
    $tpl->set('s', 'HREF', 'front_content.php?idcatart='.$idcatart.'&logout=yes');  
    $tpl->set('s', 'LOGOUT', mi18n("Logout"));  
}

$tpl->generate('templates/'.$template);
?>
Die Änderung ist der IF-Zweig hinter if ($auth->auth['uid'] == 'nobody') { :)

Gruß
René

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Autom. Login im Frontend

Beitrag von rethus » Do 24. Nov 2011, 11:40

Hallo, dass mit GET würde ich in jedem Fall wieder vergessen, wenn es um Sicherheit gehen soll. Dass ist nicht nur unsicher, sondern sogar grob fahrlässig :D
Davon abgesehen, dass das passwort in der Adresszeilee auftaucht, dürfte es auch als "Refferer-Link" in den Logs fremder Server auftauchen, wenn deine Mitarbeiter vom Intranet-bereich auf eine andere Webseite im Internet zugreifen. Und schwups sind die Zugangsdaten überall bekannt.

Wenn du einen einigermaßen sicheren Weg haben möchtest, dann gehe über die $_POST variable.
Dazu kannst du ja einfach eine <form> mit hidden Textfields machen, welche dann per button, oder per javascript.submit-funktion versendet werden. Is auch nicht das gelbe vom Ei, da somit das passwort im Quelltext des hidden-Fields steht, aber es erschein zumindest nicht in der URL.

Ich hatte das mal irgendwo eingebunden, und es funktionierte wirklich reibungslos.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

mko
Beiträge: 123
Registriert: Di 1. Feb 2005, 10:26
Wohnort: Österreich
Kontaktdaten:

Re: Autom. Login im Frontend

Beitrag von mko » Mo 28. Nov 2011, 08:56

Hm - vielleicht hilft uns eine genauere Beschreibung von dem was ich machen möchte:

Im Prinzip habe ich ein Konzernintranet, dass nur innerhalb des Konzerns erreichbar ist. Dort ist auch ein Intranet (zusätzliche Navigationsleiste) eines Teilkonzerns integriert (geschützte Bereiche). Beim Aufruf der Intranet URL frage ich ab, woher der Besucher kommt. Ist er aus dem Teilkonzern rufe ich die front_content.php mit Username und Passwort auf. Kommt er nicht aus dem Teilkonzern front_content.php ohne Parameter. Nur leider klappt das mit Username und Passwort halt nicht ,-(

Vielleicht habt ihr ja noch eine andere Idee, wie ich das lösen könnte.

lg aus dem sonnigen Wien

Oldperl
Beiträge: 4256
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Autom. Login im Frontend

Beitrag von Oldperl » Mo 28. Nov 2011, 10:29

Hallo,

wenn man den Netzaufbau kennt könnte man in diesem Fall (Intranet) auch eine Freigabe im FE per aufrufender (Netz-)IP machen oder, falls vorhanden, den Referrer auswerten.
Ich gehe dabei davon aus, das alle Aufrufer aus dem entsprechenden Teilbereich die geschützten Daten sehen dürfen.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Autom. Login im Frontend

Beitrag von Spider IT » Mo 28. Nov 2011, 10:30

1. müssen die Parameter username und password komplett richtig geschrieben sein damit es überhaupt funktionieren kann.
2. steht die alternative Lösung direkt oben drüber :)
Erstell eine Kopie des Login-Formulars mit hidden Felder anstatt input type="text" und input type="password".
Diese Felder gibst du den Wert gleich mit (value="derWert").
Direkt unter dem Formular erstellst du eine Javascript-Anweisung, die das Formular abschickt.
Diese Seite rufst du dann für die User des Teilkonzerns auf (oder lässt sie nur dann erscheinen, das ist sicherer) und durch die automatische Anmeldung (Javascript schickt das Formular ab) sind diese gleich angemeldet.

Gruß
René

Gesperrt