zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Apache und .htpasswd

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 26.08.2010, 16:23
Benutzerbild von uspri
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 04.07.2005
Beiträge: 900
uspri sorgt für eine eindrucksvolle Atmosphäreuspri sorgt für eine eindrucksvolle Atmosphäre
Standard Apache und .htpasswd

Ich stehe grad vor dem Problem, eine .htpasswd mit PHP erstellen zu müssen.

Dabei ist mir folgendes aufgefallen: Es steht überall geschrieben, zumindestens da, wo ich gelesen hab, dass unter Windows md5() und unter Linux / Unix crypt() verwendet wird. Nun hab ich hier den Xampp unter Xp drauf und da geht weder das Eine noch das Andere. Ich muss das Passwort im Klartext in der .htpasswd speichern.

Kann mir dazu jemand was verbindliches sagen? Wie kann ich bei dynamischer Erstellung der Datei auf die verschiedenen Anforderungen eingehen?
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 28.08.2010, 20:59
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 26.03.2008
Beiträge: 372
Cu Chullain befindet sich auf einem aufstrebenden Ast
Standard

Also du willst ein php script das dir eine .htpasswd erstellt?

Ich bin nicht sicher ob ich dich richtig verstanden habe, aber in PHP kannst du ja ohne weiteres md5 hash erzeugen einfach gesagt:
Code:
<?php
$text="Passwort";
echo md5($text);
?>
Was rauskommt ist in diesem Beispiel z.B. den Hash 3e45af4ca27ea2b03fc6183af40ea112 und den generierst du den halt in eine .htpsswd um bzw. lässt sie dir mithilfe von php erstellen so, dass du eine .htpasswd datei mit dem Inhalt:

Username:3e45af4ca27ea2b03fc6183af40ea112 hast.

nun brauchst du nur eine entsprechende .htaccess wo sowas in die Richtung drinsteht:

AuthName "Test" (Name der Identifikation)
AuthType Basic (Art der Identifikation)
AuthUserFile /verzeichnis/.htpasswd (Verzeichnis in dem die .htpasswd ist - meist ein geschützter Bereich auf dem Server der nicht fürs Frontend zugänglich ist)
require valid-user (Art der Abfrage: Benutzer/Gruppe)

Ist es das was du wolltest? Ich verstehe eben nicht genau warum du das mit php generiert haben musst, warum nicht einfach eine php Passwort abfrage?
Gruss
__________________
Cu Chullain
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 28.08.2010, 22:19
Benutzerbild von uspri
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 04.07.2005
Beiträge: 900
uspri sorgt für eine eindrucksvolle Atmosphäreuspri sorgt für eine eindrucksvolle Atmosphäre
Standard

Es geht mir um die unterschiedlichen Darstellungen des Passwortes ansich. Meine bisherigen Erfahrungen sind, dass ich gelesen habe, unter Win md5() und unter Linux crypt(), wobei ich nun wieder an dem Punkt angekommen bin, dass es bei mir unter Win nur im Klartext geht. Dazu wollte ich gern eine verbindliche Aussage haben.

Der Sinn dahinter ist, dass es eine Administration ist, die erstens durch htaccess + htpasswd und darauf folgend über ein PHP-Login gesichert werden soll, da in dem alten CMS schonmal ein erfolgreicher Hacker unterwegs war.
Mit Zitat antworten
  #4 (permalink)  
Alt 28.08.2010, 22:29
Benutzerbild von Pascolo
Stiller Leser
XHTMLforum-Mitglied
 
Registriert seit: 24.11.2007
Ort: Cham
Beiträge: 640
Pascolo sorgt für eine eindrucksvolle AtmosphärePascolo sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von uspri Beitrag anzeigen
Kann mir dazu jemand was verbindliches sagen? Wie kann ich bei dynamischer Erstellung der Datei auf die verschiedenen Anforderungen eingehen?
Laut SELFHTML erlaubt der Apache-Webserver unter Windows sowohl verschlüsselte wie auch unverschlüsselte Passwörter. Weshalb bei dir nun speziell nur unverschlüsselte Passwörter in die .htpasswd-Datei eingetragen werde dürfen, kann ich mir momentan nicht erklären.

Ansonsten würde ich folgendermassen entscheiden:

PHP-Code:
<?php
  $password 
"mein-passwort-im-klartext";
  if (
stripos(PHP_OS"win") !== false) {
    
# Verschlüsselung auf einem Windows-System
    
$password_encrypted md5($password);
  } else if (
stripos(PHP_OS"linux") !== false) {
    
#Verschlüsselung auf einem Linux-System
    
$passwort_encrypted crypt($password);
  } else {
    
# Ansonsten keine Verschlüsselung oder eine
    # Standard-Verschlüsselungsmethode wählen
    
$password_encrypted $password;
  }
?>
Die Problematik unter Windows besteht aber leider immer noch. Eventuell kann man die Sache noch detaillierter filtern.
__________________
Mit freundlichen Grüssen "Pascolo"

Guter Webspace eSport Topliste Meine Lesezeichen Meine Spielwiese

Geändert von Pascolo (28.08.2010 um 22:56 Uhr) Grund: Inhaltliche Korrektur und Zusatz am Schluss hinzugefügt
Mit Zitat antworten
  #5 (permalink)  
Alt 28.08.2010, 22:36
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 26.03.2008
Beiträge: 372
Cu Chullain befindet sich auf einem aufstrebenden Ast
Standard

Darf ich im Zusammenhang mit dem angesprochenen Problem wissen welches CMS du verwendest? Falls du Joomla verwenden solltest kann ich dir 1,2 tipps geben wie man recht vielen Hackscripten gegenüber "resistent" wird^^
__________________
Cu Chullain
Mit Zitat antworten
  #6 (permalink)  
Alt 28.08.2010, 23:58
Benutzerbild von Manko10
Webstandardsevangelist
XHTMLforum-Mitglied
 
Registriert seit: 08.06.2008
Beiträge: 351
Manko10 befindet sich auf einem aufstrebenden Ast
Standard

Wenn du unsicher bist, solltest du einfach das mit dem Apache mitgelieferte Tool htpasswd.exe nutzen. Das sollte im Apache-Verzeichnis deiner XAMPP-Installation liegen (ich glaube, im bin-Ordner, kann das jetzt aber nicht nachprüfen, da ich als Hauptsystem Linux nutze). Füre dies einfach per shell_exec() aus und du hast deine .htpasswd-Datei. Usage-Instructions zu diesem Programm gibt es hier: htpasswd - Manage user files for basic authentication - Apache HTTP Server
__________________
Take you Linux to the next level with Refining Linux
Mit Zitat antworten
  #7 (permalink)  
Alt 29.08.2010, 07:27
Benutzerbild von uspri
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 04.07.2005
Beiträge: 900
uspri sorgt für eine eindrucksvolle Atmosphäreuspri sorgt für eine eindrucksvolle Atmosphäre
Standard

@Pascalo

So hab ich das jetzt auch drinnen, nur eben in meinem Fall ohne md5().

@Cu Chullain

Ich verwende kein fertiges CMS, schon gar nicht Joomla. Aber Danke für Dein Angebot.

@Manko10

Das wäre ne Möglichkeit. Kein Plan, wie ich das jeweils unter Win bzw. unter Linux zum laufen bekomme. Das ganze soll dann mal auf einem V-Server bei 1und1 laufen. Dort ist Linux drauf, aber ich habe eben hier Windows und daher das Unverständnis.


Fazit: Unter Windows zum Testen, lasse ich das nun so, unter Linux geht dann crypt().
Mit Zitat antworten
  #8 (permalink)  
Alt 29.08.2010, 11:46
Benutzerbild von Manko10
Webstandardsevangelist
XHTMLforum-Mitglied
 
Registriert seit: 08.06.2008
Beiträge: 351
Manko10 befindet sich auf einem aufstrebenden Ast
Standard

Unter Linux ist htpasswd in der PATH-Variable drinnen, d.h. du kannst es einfach verwenden. Unter Windows müsstest du wohl den Pfad zur exe-Datei angeben.

Windows:
PHP-Code:
$passwd shell_exec('C:\xampp\apache\bin\htpasswd -n -b -m ' $username ' ' .$password); 
oder wo auch immer deine htpasswd.exe sich befindet und unter Linux:
PHP-Code:
$passwd shell_exec('htpasswd -n -b -d ' $username ' ' $password); 
Du kannst übrigens auch den Parameter -n weglassen und direkt die Passwort-Datei angeben, in die geschrieben werden soll:
PHP-Code:
shell_exec('htpasswd -b -d ' $passwdFilePath ' ' $username .' ' $password); 
__________________
Take you Linux to the next level with Refining Linux

Geändert von Manko10 (29.08.2010 um 11:49 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 29.08.2010, 17:10
Benutzerbild von uspri
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 04.07.2005
Beiträge: 900
uspri sorgt für eine eindrucksvolle Atmosphäreuspri sorgt für eine eindrucksvolle Atmosphäre
Standard

Danke für den Code. Ich werd mal schauen, wie ich das verwenden kann. Das mit dem Windows ist ja nur hier bei mir lokal zum testen, denn ich habe kein Linux. Online dürfte das ja dann kein Problem werden.
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Apache 2, virtual hosts Scheppertreiber Serveradministration und serverseitige Scripte 0 31.03.2008 20:32
apache 2.0.52 auf os 10.4.9 r74 Serveradministration und serverseitige Scripte 2 25.10.2007 16:58
apache gibt query-variablen nicht an php weiter docstevie Serveradministration und serverseitige Scripte 2 31.07.2005 02:16
Wamp 5 (lokaler Apache Webserver) mit PHP 5 Beta 4 hemfrie Offtopic 0 27.02.2004 11:05


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:03 Uhr.