Hauptmenü
Diese kleine Programm erzeugt automatisch einen Verzeichnisschutz .htaccess und .htpasswd.
Dazu einfach die in der ZIP-
Es erfolgt eine Menüführung bis hin zur Erstellung des Verzeichnisschutzes. Abschließend wird die Datei xssen.php automatisch gelöscht (Voreinstellung).
Hier kann die Verzeichnisschutz-
Kurz vor der Erstellung der beiden Dateien
.htacces
.htpasswd
bricht das Programm automatisch ab.
Code der PHP-
<?php
/* ******************************************************* */
/* xsSen.php */
/* einfacher Verzeichnisschutz. */
/* ******************************************************* */
/* VOR GEBRAUCH LIZENS-
/* www.sensiebels.de/download/lizenz.htm */
/* www.sensiebels.de/download/nutzung.htm */
/* ******************************************************* */
##########################################################################################
# Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General
# Public License, wie von der Free Software Foundation veröffentlicht, weitergeben
# und/oder modifizieren, entweder gemäß Version 2 der Lizenz oder (nach Ihrer Option)
# jeder späteren Version.
#
# Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen
# sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der
# MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in
# der GNU General Public License.
#
# Sie sollten eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten
# haben. Falls nicht, schreiben Sie an die Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-
##########################################################################################
# ENGLISH VERSION: http://www.gnu.org/licenses/gpl.html
##########################################################################################
/* Die unten stehnden Stylesheets koennen Sie aendern */ $stylesheets='
<!-
body,i,u,b,p,table,td,form,input,textarea {
font-
font-
color:#000000;
}
a {
font-
font-
color:#00A000;
}
h1 {
font-
font-
color:#0000C0;
}
pre {
font-
font-
color:#0000C0;
}
.red {
color:#FF0000;
font-
}
.url {
color:#000000;
font-
font-
}
-
</style>
';/* ********** Ende des Stylesheet -
/**
* Es sind KEINE weiteren Aenderungen oder Einstellungen am
* folgenden Programm vorzunehmen. Kopieren Sie diese Datei
* einfach in das zu schützende Verzeichnis und fuehren Sie sie
* über den Browser aus.
* Eine genauere Anleitung finden Sie hier:
* http://www.sensiebels.de/download/xssen/
**/
$program = "xssen.php";
$version = "1.1.0 beta";
// name dieses Scripts
$self_name = basename(__FILE__);
$self_pfad = realpath("./");
// Dateispeicher leeren
clearstatcache();
// demo aktivieren ./. nicht
if(file_exists($self_pfad.'/dvlp.inc')) {
@include('dvlp.inc');
} else {
$dvlp = "off";
}
// php version checken
if (substr(eregi_replace("[^0-
die ('Dieses Script erfordert mindestens PHP Version 4.1.0. Auf diesem Server ist Version '.PHP_VERSION.' installiert.');
}
// REQUEST vars
$request_var_arr = array('dvlp','dvlp_info','name','pw1','pw2','bereich','aufruf','showdetails','bericht','showpasswd','dvlpcryptdir','submit','cryptby','cpassword','killme','dvlpendtxt');
foreach ($request_var_arr as $val) {
if(isset($_POST[$val])) {
$$val = $_POST[$val];
} elseif(isset($_GET[$val])) {
$$val = $_GET[$val];
} elseif(!isset($$val)) {
$$val = '';
}
}
?>
<html>
<head>
<meta name="robots" content="none">
<meta name="robots" content="noindex">
<title>xsSen.php -
<?php echo $stylesheets ?>
</head>
<body>
<div align="center">
<table width="650">
<tr>
<td align="center">
<form action="<?php echo $self_name ?>" method="post">
<h1>xsSen.php <?php echo $version ?></h1>
<i> Einfacher Verzeichnisschutz.<?php echo $dvlp_info ?><br>
<a href="http://www.sensiebels.de" target="_top">(P) (c) Copyright 2002 by Sensiebels</a></i>
<hr noshade size="1">
<?php
$name = trim(stripslashes($name));
$bereich = trim(stripslashes($bereich));
$pw1 = trim(stripslashes($pw1));
$pw2 = trim(stripslashes($pw2));
function submitbutton($buttontext,$aufruf) {
global $name,$bereich,$pw1,$pw2;
echo '
<input type="hidden" name="bereich" value="',$bereich,'">
<input type="hidden" name="name" value="',$name,'">
<input type="hidden" name="pw1" value="',$pw1,'">
<input type="hidden" name="pw2" value="',$pw2,'">
<input type="hidden" name="aufruf" value="',$aufruf,'">
<input type="submit" name="submit" value="',$buttontext,'">
';
}
/* PROGRAMM AUFRUFE */
switch ($aufruf) {
case "drei":
/* DRITTER AUFRUF: MACH ES WAHR! (ODER NICHT) */
// abbrechen
if($submit=="abbrechen") {
?>
Das Verzeichnis wurde nicht geschützt.<br>
Es wurden weder Daten gespeichert noch geändert. <br><br>
<?php
submitbutton("zurück","eins");
}
else {
// wahrmachen
$dvlpcryptdir!="" ? $self_pfad = $dvlpcryptdir : $self_pfad;
$htaccess = "AuthName \"".$bereich."\"\nAuthType Basic\nAuthUserFile "
. $self_pfad."/.htpasswd\n\nrequire valid-
// VERSCHLUESSELN
switch($cryptby) {
case "crypt": $cpassword = crypt($pw1); break;
case "md5": $cpassword = md5($pw1); break;
case "none": $cpassword = $pw1; break;
}
$htpasswd = $name.":".$cpassword;
//SCHREIBEN
if($dvlp=='off') {
if($datei1=@fopen(".htpasswd","w")) {
fputs($datei1,$htpasswd);
fclose($datei1);
$bericht .= "Die .htpasswd Datei wurde geschrieben.<br>";
if($datei2=@fopen(".htaccess","w")) {
fputs($datei2,$htaccess);
fclose($datei2);
$bericht .= "Die .htaccess Datei wurde geschrieben.<br>";
}
else {
$bericht.="<b>FEHLER.<br>Die .htaccess Datei konnte nicht
geschrieben werden!</b>";
}
}
else {
$bericht.="<b>FEHLER.<br>Die .htpasswd konnte nicht
geschrieben werden!</b>";
}
}
else {
// DVL == ON
$bericht .= "Die .htpasswd Datei wurde geschrieben. (demo)<br>
Die .htaccess Datei wurde geschrieben. (demo)<br>";
}
//AUSGABE
echo '<h1>BERICHT</h1><b>',$bericht,
'</b><br><table><tr><td>
<pre><b>Inhalt der Datei .htaccess:</b>',
"\n", htmlspecialchars($htaccess),
'</pre><hr noshade size="1"><pre><b>Inhalt der Datei .htpasswd:</b>',
"\n", htmlspecialchars($htpasswd),
'</pre>
</td></tr></table><br>';
// SELBSTZERSTOERUNG
if($killme == "yes" && $dvlp!="on") {
if (@unlink($self_name)) {
echo "<br><b>Dieses Programm hat sich soeben selbst gelöscht.</b>";
}
else {
// COULDN'T UNLINK
echo "<br>Dieses Programm konnte nicht gelöscht werden und bleibt im
Verzeichnis bestehen. <b>Bitte entfernen Sie es sicherheitshalber manuell</b>!";
}
}
else {
// $killme == no
echo "<br>Dieses Programm bleibt weiterhin im Verzeichnis bestehen.";
}
echo '<br><a href="../">../ ein Verzeichnis aufwärts</a>', $dvlpendtxt;
}
break;
########################################################################
case "zwei":
/* PRUEFEN */
$bereich = ereg_replace("[ ]+"," ",eregi_replace("[^a-
// VARIABLEN UEBERGEBEN?
if(!$pw1||!$pw2||!$name||!$bereich) {
echo "<b>Bitte füllen Sie alle Felder aus.</b><br>";
submitbutton("zurück","eins");
}
else {
// PASSWOERTER RICHTIG?
if($pw1!=$pw2) {
echo "<b>Die Passwörter stimmen nicht überein.<br><br><i>
<a href=\"",$self_name,"\">Neustart</a></i></b>";
}
else {
// FILE EXISTIERT?
if(file_exists($self_pfad."/.htaccess")) {
echo "<b class=\"red\">ACHTUNG</b>
<br>Es existiert bereits eine <b>.htaccess</b> Datei. Wenn Sie
fortfahren, wird diese überschrieben!<hr noshade size=\"1\">";
}
if(file_exists($self_pfad."/.htpasswd")) {
echo "<b class=\"red\">ACHTUNG</b>
<br>Es existiert bereits eine <b>.htpasswd</b> Datei. Wenn Sie
fortfahren, wird diese überschrieben!<hr noshade size=\"1\">";
}
// ZUR UEBERPRUEFUNG AUSGEBEN
?>
<table><tr><td align="right">
<table cellspacing="0" cellpadding="6" border="1">
<tr>
<th colspan="2">Bitte wählen Sie die Art der Passwort-
</tr><tr>
<td><input type="radio" name="cryptby" value="crypt" checked></td> <td>crypt (linux, unix)</td>
</tr><tr>
<td><input type="radio" name="cryptby" value="md5"></td> <td>md5 (windows)</td>
</tr><tr>
<td><input type="radio" name="cryptby" value="none"></td> <td>unverschlüsselt</td>
</tr>
</table>
</td><td align="left">
<table cellspacing="0" cellpadding="6" border="1">
<tr>
<th colspan="2" align="center">
Bitte prüfen Sie diese Angaben nochmals und merken Sie sich Ihre Zugangsdaten:
</th>
</tr><tr>
<td colspan="2" align="center">Name des Bereichs: <?php echo $bereich ?></td>
</tr><tr>
<td>USERNAME:</td> <td><?php echo $name ?></td>
</tr><tr>
<td>PASSWORT:</td>
<td>
<?php
if($showpasswd!="no") {
echo $pw1;
}
else {
echo eregi_replace("[^\*]","*",$pw1);
}
?>
</td>
</tr>
</table>
</td></tr></table><br>
<?php
submitbutton("Verzeichnisschutz erstellen! *","drei");
?>
<br>
<table><tr><td>
<input type="checkbox" name="killme" value="yes" checked>
</td><td>
* Dieses Programm nach erfolgter Erstellung entfernen (empfohlen).
</td></tr></table>
<br>
<hr noshade size="1">
<input type="submit" name="submit" value="abbrechen">
<?php
$bericht ? $bericht="<b>HINWEISE:</b><hr noshade size=\"1\">".$bericht:$bericht="";
}
}
break;
########################################################################
case "eins":
/* NAME & PASSWORTEINGABE */
// http-
$httppfad_null = explode("?",getenv('HTTP_REFERER'));
$httppfad = $httppfad_null[0];
// defaulteintrag für form[bereich]
$bereich == "" ? $bereich = "PRIVAT" : $bereich;
?>
Stimmt folgende Adresse mit der Adressleiste Ihres Browsers überein?<br>
<table border="1" cellpadding="3"><tr><td>
<span class="url"><?php echo $httppfad ?></span>
</td></tr></table><br><br>
Wenn <b>ja:</b> Tragen Sie bitte einen Benutzernamen und ein Passwort ein:<br><br>
<table>
<tr>
<td>Benutzername:</td>
<td><input type="text" size="35" name="name" value="<?php echo $name ?>" maxlength="20"></td>
</tr><tr>
<td>Passwort:</td>
<td><input type="password" name="pw1" value="" size="35" maxlength="20"></td>
</tr><tr>
<td>Passwort wiederholen:</td>
<td><input type="password" name="pw2" value="" size="35" maxlength="20"></td>
</tr><tr>
<td>Name des geschützten Bereichs:</td>
<td><input type="text" name="bereich" value="<?php echo $bereich ?>" size="35" maxlength="20"></td>
</tr>
<tr><td colspan="2">(wird später bei der Passwortabfrage angezeigt)</td></tr>
</table><br>
<input type="hidden" name="aufruf" value="zwei">
<hr noshade size="1">
<table><tr>
<td><input type="Checkbox" name="showpasswd" value="no" checked></td>
<td>Passwort auch im nächsten Schritt als *** anzeigen.</td>
</tr></table>
<input type="submit" value="weiter">
<?php
break;
default:
/* NULLAUFRUF */
if($self_name!='' && $self_pfad!='' && file_exists($self_pfad."/".$self_name)) {
if ($showdetails=="yes") {
echo '<P><STRONG>NO WARRANTY</STRONG></P><P><STRONG>11.</STRONG> BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. <P> <STRONG>12.</STRONG> IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.<br><br><a target="_blank" href="http://www.gnu.org/licenses/gpl.html">READ THE GNU GENERAL PUBLIC LICENCE</a><hr noshade size="1"><a href="',$self_name,'">[hide details]</a><hr noshade size="1">';
}
else {
echo $program,' comes with ABSOLUTELY NO WARRANTY -
}
?>
<br><input type="hidden" name="aufruf" value="eins">
<input type="submit" value="start">
<br><br> Es folgen zwei weitere Schritte.
<?php
}
else {
?>
<h1>Fehler.</h1>
Dieses Script funktioniert leider nicht auf diesem Server.<br>Schauen Sie auf
<a href="http://www.sensiebels.de/download/">www.sensiebels.de/download/</a>
nach, ob eine neuere Version ( > <?php echo $version ?> )
dieses Scripts verfügbar ist.<br><br>Danke für Ihr Verständnis.
<?php
}
break;
########################################################################
} // ende switch
?>
</form>
</td></tr></table>
</div>
</body>
</html>