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
Autom. Login im Frontend
Re: Autom. Login im Frontend
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:
Ich habe das mal in dem Login-Modul der 4.6er Reihe eingearbeitet:Die Änderung ist der IF-Zweig hinter if ($auth->auth['uid'] == 'nobody') {
Gruß
René
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
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);
?>
Gruß
René
Re: Autom. Login im Frontend
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
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.
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
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
Re: Autom. Login im Frontend
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
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
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Autom. Login im Frontend
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
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
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: Autom. Login im Frontend
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é
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é