Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Know-how  Teil von  Sicherheit
Professional CronJob-Service

Suche

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP?
In über 130.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
 
HTTP-Authentifizierung via HTACCESS: Seite 1

SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an. Weitere Informationen



Die Authentifizierung über das HTTP-Protokoll ist sicher eine der bequemsten Möglichkeit, einen Anwender zu einer Identifizierung zu veranlassen. Der Server bzw. das Skript sendet einen HTTP-Header an den Browser, der zur Authentifizierung auffordert. Der Anwender erhält daraufhin vom Browser ein Loginfenster präsentiert, wie Sie es bereits im Abschnitt »Authentifizierung via http« kennengelernt haben. Der Anwender loggt sich ein und erhält Zugriff auf den geschützten Bereich. Kann dieser nicht identifiziert werden, so wird der Zugriff verweigert und der Anwender erhält eine Fehlermeldung. Der Apache-Webserver ermöglicht es, ein Verzeichnis und sämtliche Unterverzeichnisse durch eine sogenannte .htaccess-Datei zu schützen. Eine solche Datei sieht wie folgt aus:

AuthUserFile /htdocs/user/www.domain.de/admin/.htpasswd
AuthName Madania
AuthType Basic
<Limit GET>
require valid-user
</Limit>

Tipp: Unter Unix sorgt der Punkt vor dem htaccess-Dateinamen dafür, dass diese Datei versteckt wird. Dies können Sie auch auf eigene Dateien anwenden.

Hat sich ein Anwender über die Webserver-Authentifizierung angemeldet, können Sie mithilfe der globalen Servervariablen $_SERVER["REMOTE_USER"] den Benutzernamen des angemeldeten Anwenders und mit $_SERVER["AUTH_TYPE"] die Authentifizierungsmethode ermitteln.


Anpassen der Passwortdatei

Die Webserver-Identifizierung hat einen wesentlichen Nachteil: Sie müssen den Anwender nicht nur für die jeweilige Webanwendung registrieren, sondern auch beim Webserver. Eine Passwortänderung muss dem Server ebenfalls mitgeteilt werden.

Natürlich können Sie jederzeit den Serveradministrator darum bitten, die Anpassungen vorzunehmen, doch ich will Ihnen eine Lösung vorstellen, mit der es einfach ist, die Änderungen selbst vorzunehmen.

Ein Eintrag in einer gültigen Passwortdatei, welche in den meisten Fällen den Dateinamen .htpasswd besitzt, setzt sich aus einer Zeile zusammen. Die Zeile stellt sich wie folgt dar:
Nutzername:Passwort

Diese Zeile können Sie mithilfe von PHP auch selbst erzeugen bzw. anfügen, und zwar mit der Funktion setze_passwort():

<?php

// Passwort-Funktion
function setze_passwort($pwddatei,$nutzer,$nutzer_pwd="") {
  if (empty($nutzer) || empty($pwddatei) || strlen($nutzer)<3) {
    return false;
  }
  // Sollte die Datei existieren, wird ein Backup
  // mit einem Zeitstempel erzeugt
  if (file_exists($pwddatei)) {
    $pwd=file($pwddatei);
    copy("$pwddatei",$pwddatei.time());
  } else {
    $pwd=array();
  }
  // Neue Passwort-Variable initialisieren
  $neu_pwd="";

  // Sämtliche Benutzer durchlaufen
  foreach($pwd as $eintrag) {
    if (strstr($eintrag,$nutzer.":")==$eintrag) {
      $change_nutzer=true;
      if (empty($nutzer_pwd)) {
        continue;
      }
      $neu_pwd.= $nutzer.":".crypt($nutzer_pwd,$nutzer[2].$nutzer[1])."\n";
    } else {
      $neu_pwd.=trim($eintrag)."\n";
    }
  }

  // Benutzer neues Passwort zuweisen
  if (!isset($change_nutzer)) {
    if (empty($nutzer_pwd)) {
      return false;
    } else {
      $neu_pwd.= $nutzer.":".crypt($nutzer_pwd,$nutzer[2].$nutzer[1])."\n";
    }
  }

  // Daten sichern
  $datei=fopen($pwddatei,"w");
  if (is_resource($datei)) {
    flock($datei,LOCK_EX);
    fwrite($datei,$neu_pwd);
    flock($datei,LOCK_UN);
    fclose($datei);
    return true;
  } else {
    return false;
  }
}

?>




Sicherheit
 




:: Premium-Partner ::

Webhosting/Serverlösungen

Pixel X weitere Premium-Partner
 

:: SELFPHP Sponsor ::

Sedo GmbH weitere Sponsoren
 


:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


MySQL-Backup über die Shell

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


Das aktuelle Jahr in Kalenderform darstellen

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de