Webdesign Leipzig + Mambo CMS Support Leipzig
Startseite Aktuelle Meldungen Mambo CMS Playground Shopping Demo mit phpShop Verweise Links Kontakt Impressum

Home
News
CMS Playground
Links
Kontakt
Impressum
Suche


DotFlare Demo Shop


Benutzername:
Passwort:
 


Webdesign und Grafikdesign aus Leipzig   Devblog - Webdesign & Webstandards mit CMS Systemen


Home arrow CMS Playground arrow Frontendlogin mit HTTP Authentifikation

Dienstag, 07.10.2008

Frontendlogin mit HTTP Authentifikation Druck Vorschau
Sonntag, 17 April 2005

In verschiedenen Fällen kann es aus Sicherheitsgründen wünschenswert sein, zum Beispiel für administrative Verwaltungsarbeiten im Frontend, den Mambo Login im Frontend durch eine zusätzliche HTTP Authentifikation abzusichern. Der hier vorgestellte Lösungsansatz geht davon aus, dass dafür das administrator Verzeichnis der Mambo Installation mit einem funktionierenden Passwortschutz über eine .htaccess Datei versehen ist. Voraussetzung dafür ist das Betreiben des Mambo CMS mit einem Apache Webserver. Informationen zum Erzeugen eines passwortgeschützten Verzeichnisses sind hier zu finden. Die hier angewandte Vorgehensweise besteht aus zwei Codeteilen, wobei der erste im Headerbereich des zu verwendenden Mambotemplate eingefügt wird und der zweite als Datei im administrator Verzeichnis von Mambo gespeichert werden muss.

Im vorgestellten Beispiel wird nun ein erfolgter Frontend Login des Superadministrators ( id = 62 ) überprüft, ist dies der Fall wird getestet ob schon eine erfolgreiche HTTP Authentifikation stattgefunden hat ($safeadmin='mysecretword') und mittels Cookie ($safe_admincookie='1') bestätigt wurde. Wenn nein, dann wird der Superadministrator mittels Aufruf der safeadmin.php im administrator Verzeichnis dazu gezwungen, sich wie gewünscht zusätzlich über die HTTP Authentifizierung des Webservers, zu identifizieren.

Im Header der index.php ( zwischen <head> ... </head> ) des verwendeten Mambotemplates ist folgendes einzufügen :

<?php
 
// Second Level Frontend Admin HTTP Authentification
 
if ( isset ( $HTTP_GET_VARS['safeadmin'] ) ) {
$safeadmin = $HTTP_GET_VARS['safeadmin'];
} else {
$safeadmin = '';
}
 
if ( isset( $HTTP_COOKIE_VARS['safe_admincookie'] ) ) {
$safe_admincookie = $HTTP_COOKIE_VARS['safe_admincookie'];
} else {
$safe_admincookie = '';
}
 
if ( $safeadmin == "mysecretword" ) {
setcookie("safe_admincookie","1");
}
 
if ( ( $my->id == "62" ) && $safeadmin == '' && $safe_admincookie == '' ) {
header( "Cache-Control: no-store, no-cache, must-revalidate" );
header( "Cache-Control: post-check=0, pre-check=0", false );
header( "Pragma: no-cache" );
header( "Location:" . "$mosConfig_live_site/administrator/safeadmin.php" );
}
?>

Da die safeadmin.php im administrator Verzeichnis (dem passwortgeschützten Bereich) liegt, kann sie nur nach einer erfolgreichen Authentifikation abgearbeitet werden. Ist diese geschehen, dann erfolgt ein redirect auf die Startseite mit der Übergabe von safeadmin=mysecretword als Status der erfolgreichen Indentifikation.

Inhalt der im administrator Verzeichnis zu platzierenden Datei safeadmin.php :

<?php
 
// Second Level Frontend Admin HTTP Authentification
 
define( "_VALID_MOS", 1 );
include_once( '../globals.php' );
require_once( '../configuration.php' );
require_once( '../includes/mambo.php' );
global $mosConfig_live_site;
mosRedirect( '../index.php?safeadmin=mysecretword' );
?>

Die hier vorgestellte Variante des Frontendlogins mit HTTP Authentifizierung lässt sich leicht auf weitere registrierte Benutzer anpassen. Dazu muss lediglich die Abfrage

( $my->id == "62" )

im eingefügten Codestück des Templateheaders ergänzt werden, zum Beispiel mit

( $my->id == "62" || $my->id == "63" ) usw.

Die den Benutzern zugehörigen id's sind in der Datenbank Tabelle mos_users zu finden und können zum Beispiel mittels phpmyadmin festgestellt werden.

[Autor: grishan 2005]

 



Onlinestats: 5 Gäste online

Seite nach obenTop