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
<?php
if($_SERVER["PHP_AUTH_USER"]!="Matthias"
OR $_SERVER["PHP_AUTH_PW"]!="Kannen") {
Header('HTTP/1.1 401 Unauthorized');
Header('WWW-Authenticate: Basic realm="Privatezone"');
echo "Sie haben den Vorgang abgebrochen!";
exit;
}
?>
<html>
<head>
<title>Privatzone</title>
</head>
<body>
<h1>Hier ist die Privatzone von </h1>
<h2>
<?php
echo "Benutzer: ".$_SERVER["PHP_AUTH_USER"]." Passwort: ".$_SERVER["PHP_AUTH_PW"];
?>
</h2>
</body>
</html>
Das PHP-Skript erhält über folgende Servervariablen die Anmeldedaten:
Variable
Wert
$_SERVER["PHP_AUTH_USER"]
Benutzername
$_SERVER["PHP_AUTH_PW"]
Passwort im Klartext
$_SERVER["PHP_AUTH_TYPE"]
Authentifizierungstyp
Das Skript kann die Gültigkeit der so übergebenen Daten prüfen. Diese Variablen stehen Ihnen immer nur dann zur Verfügung, wenn das PHP-Skript die Authentifizierung veranlasst hat. Hat sich ein Anwender einmal am System angemeldet, werden die Anmeldungsdaten im Browser gesichert. Bei jedem Aufruf einer Resource im geschützten Bereich sendet dieser automatisch die Authentifizierungsdaten mit. Der Anwender muss sich somit nur einmal anmelden. Sie sollten jedoch beachten, dass im Authentifizierungsschema Basic das Passwort im Klartext gesendet wird. Es wäre daher ratsam, gegebenenfalls HTTPS zu verwenden, um eine sichere Übertragung zu gewährleisten.
Sicherheitsproblem
Ein weiteres Sicherheitsproblem ist zu berücksichtigen: Der Browser speichert nämlich den Benutzernamen und das Passwort, sodass die Autoren derjenigen Seiten, die man nach der Passworteingabe abruft, theoretisch das Passwort abfragen könnten. Dies kann man jedoch ganz einfach verhindern, indem man den Browser komplett beendet oder den PHP-Abschnitt wie folgt anpasst:
<?php
if($PHP_AUTH_USER!="Matthias" OR $PHP_AUTH_PW!="Kannen") {
Header('HTTP/1.1 401 Unauthorized');
Header('WWW-Authenticate: Basic realm="Privatezone"');
echo "Sie haben den Vorgang abgebrochen!";
exit;
} else {
unset($PHP_AUTH_PW);
}
?>
Variante via $_SERVER
<?php
if($_SERVER["PHP_AUTH_USER"]!="Matthias" OR $_SERVER["PHP_AUTH_PW"]!="Kannen") {
Header('HTTP/1.1 401 Unauthorized');
Header('WWW-Authenticate: Basic realm="Privatezone"');
echo "Sie haben den Vorgang abgebrochen!";
exit;
} else {
unset($_SERVER["PHP_AUTH_USER"]);
}
?>