SSL geschütze Seiten

Gesperrt
noolei
Beiträge: 25
Registriert: So 30. Apr 2006, 15:53
Kontaktdaten:

SSL geschütze Seiten

Beitrag von noolei »

Hallo Forum,

ich habe die Suchfunktion schon benutzt, was das Thema betrifft, jedoch den Thread, der mir genau zu meinem Problem hilft nicht gefunden..

Ich habe meine Seiten auf Strato gehostet und kann mittels ssl-id.de proxy meine seiten über https abrufen. Wenn ich in den Mandanteneinstellungen die Adresse einstelle, klappt das wunderbar..

Allerdings möchte ich nur den internen Bereich der Seite über einen ssl Kanal laufen lassen. Mein Ansatz wäre jetzt, den webpfad des mandaten händisch zu ändern, nachdem man sich einloggt, bzw. je nach bedarf.

Ist das irgendwie möglich, bzw. gibt es eine andere evtl. einfachere Möglichkeit?

schönen Gruß,
noolei
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Beitrag von xmurrix »

Hallo,

der Zugriff auf das Mandantenverzeichnis über das Backend soll über https laufen, ist das so richtig?

Die Mandanteneinstellungen, auch der Webpfad werden im Backend in der Session gespeichert. Die Funktion "rereadClients()" (/contenido/includes(functions.general.php) ließt diese Daten aus und füllt damit die globale Variable $cfgClient.
Ein Ansatz wäre das Anpassen der Zeile

Code: Alles auswählen

		$cfgClient[$db->f("idclient")]["path"]["htmlpath"] = $db->f("htmlpath");
Beispiel:

Code: Alles auswählen

        if ($_SERVER['SERVER_PORT'] == '443') {
            $htmlpath = str_replace("http://", "https://", $db->f("htmlpath"));
        } else {
            $htmlpath = $db->f("htmlpath");
        }
        $cfgClient[$db->f("idclient")]["path"]["htmlpath"] = $htmlpath;
Nachteil dabei ist das Ändern einer Contenido-Core Funktion. Das kann bei einem Update überschrieben werden.

Gruß
xmurrix
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Er möchte das Frontend über SSL laufen lassen, sobald man sich angemeldet hat bzw. eine bestimmte, geschützte Kategorie aufruft.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Beitrag von xmurrix »

Stimmt, das habe ich jetzt nicht richtig gelesen.

Wie wäre es, wenn man z. B. mit folgendem Code in der "config.local.php" sollte doch möglich sein, oder?:

Code: Alles auswählen

if ($auth->auth['userid'] !== 'nobody' && $_SERVER['SERVER_PORT'] !== '443') {

    //user angemeldet und seite läuft nicht auf https
    $sess->register("cfgClient");
    $cfgClient[$client]["path"]["htmlpath"] = str_replace("http://", "https://", $cfgClient[$client]["path"]["htmlpath"]);
    page_close();
    header("Location: ".$cfgClient[$client]["path"]["htmlpath"]."front_content.php?idart=".$idart);

} elseif($auth->auth['userid'] == 'nobody' && $_SERVER['SERVER_PORT'] == '443') {

    //kein user angemeldet aber seite läuft auf https
    $sess->register("cfgClient");
    $cfgClient[$client]["path"]["htmlpath"] = str_replace("https://", "http://", $cfgClient[$client]["path"]["htmlpath"]);
    page_close();
    header("Location: ".$cfgClient[$client]["path"]["htmlpath"]."front_content.php?idart=".$idart);

}
Das Snippet sollte dafür sorgen, dass bei einem Angemeldeten User auf https gewechselt wird, wenn die seite nicht auf https läuft, und anders herum.

Das würde sich aber für alle Seiten auswirken, nicht nur auf geschützte Bereiche.

Gruß
xmurrix
noolei
Beiträge: 25
Registriert: So 30. Apr 2006, 15:53
Kontaktdaten:

Beitrag von noolei »

@xmurrix: ginge zur Not eigentlich auch. Wo finde ich die config.local.php? Ich sehe hier nur eine config.php...
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

es müsste auch gehen das direkt ins mandanten verzeichnis zu legen...

einfach eine config.local.php dort erstellen

mit inhalt

Code: Alles auswählen

<?php

// obriger code

?>
speichern, fertig...
*** make your own tools (wishlist :: thx)
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Beitrag von xmurrix »

noolei hat geschrieben:@xmurrix: ginge zur Not eigentlich auch. Wo finde ich die config.local.php? Ich sehe hier nur eine config.php...
Die Datei "config.local.php" kannst du im Mandantenverzeichnis (/cms/) anlegen, wenn sie dort nicht vorhanden ist. Habe den Code aber nicht getestet, also ohne Gewähr...

Eine andere Alternative wäre der Einsatz von steses ModRewrite Version. Hier werden sowieso alle internen Links vor der Ausgabe ersetzt. Darum kümmert sich die Funktion build_new_url der ModRewrite-Klasse. Das könnte man z. B. anpassen indem alle gefundenen Referenzen auf Kategorien und Artikel überprüft werden, ob sich diese in einem internen Bereich befinden und dann demensprechen die URL anpassen. Das geht aber, je nach Anzahl der zu überprüfenden Kategorien/Artikel, zu Lasten der Performance.

Gruß
xmurrix
noolei
Beiträge: 25
Registriert: So 30. Apr 2006, 15:53
Kontaktdaten:

Beitrag von noolei »

Danke,
das mit der config.local.php werde ich mal austesten. Die mod-rewrite-Version werde ich testen, aber nicht mehr in diesem Projekt ;-)

regards,
noolei
laurin

Beitrag von laurin »

Ich habe das selbe Problem. Ich habe alle Lösungen die hier im Forum stehen probiert, doch dabei gab es immer irgendwelche Probleme (z.B. dass man dann überall mit ssl rumsurft - was leider nicht gut ist).

Ich habe das Problem so gelöst:
bashref ausstellen (Administration, Mandant)
in meinem Login-Formular habe ich <form action="https//:Domain/ gesetzt. Beim Logout verlinke ich wieder auf http.

Bitte sagt mir mal, was ihr von der Lösung haltet.
Sicher nicht optimal, aber simpel.

Danke!
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

D.h. mit dem Code von xmurrix warst Du auch nach dem Logout mit SSL unterwegs? Sicher?

Deine Lösung ist vom Verhalten im Prinzip identisch, außer das ohne das basehref mod_rewrite von stese nicht genutzt werden kann (so zur Info).

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
laurin

Beitrag von laurin »

HerrB hat geschrieben:D.h. mit dem Code von xmurrix warst Du auch nach dem Logout mit SSL unterwegs? Sicher?
SObald ich auf http://domain gegangen bin, wurde ich direkt auf https://domain weitergeleitet. Das war sehr unpaktisch, weil SSL doch ein Stückchen langsamer ist.

Das mit dem basehref hat mir eh nie so richtig gefallen - und ich hoffe auch, dass ich durch das entfernen keine Probleme habe.
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Ja, aber das dürfte nur passieren, wenn Du Dich nicht aktiv ausgeloggt hast, mindestens ein Browser-Fenster noch offen geblieben ist und damit die Session noch immer aktiv war (sie "hält" im Frontend bis zu 15 Minuten, im Backend bis zu 60 Minuten).

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
laurin

Beitrag von laurin »

@HerrB: Das kann natürlich sein, aber ich glaube ich lasse es jetzt erstmal so...

Danke!
Gesperrt