# php passwort abfrage



## rubstar (19. Mai 2004)

hi,
 ich möchte eine einfache passwort abfrage via php ohne datenbank dahinter machen dazu hab ich einige fragen vielleicht könnt ihr mir weiterhelfen:

in der php datei mach ich die passwort abfrage mit if-else, ist das eigentlich sicher oder leicht zu knacken?

ist es besser/sicherer eine .txt datei hochzuladen und darin das passwort und user zu speichern, auf welche ich dann mit einer php datei zugreife um pass & user abzufragen?

bin gerade dabei mich einzuarbeiten daher die vielleicht etwas doofen fragen 

oder würdet ihr mir empfehlen es lieber mit cgi zu versuchen bzw. einzuarbeiten weil das sicherer ist?

würd mich freuen wenn ihr mir weiterhelfen könntet
gruß
michael


----------



## tittli (19. Mai 2004)

also ohne Datei bzw Datenbank wirst du kein vernünftig sicheres System bauen können. Nur mit einer If else-Abfrage kann jeder die Passwörter einsehen, da man ja die den Namen der php-Datei aus dem Forumlar-Quellcode herauslesen kann und damit auch aufrufen kann. Also ein login-System macht nur mit Datenbank oder Text-Datei wirklich Sinn.

gruss


----------



## JohannesR (19. Mai 2004)

Bitte halte dich in Zukunft an die Netiquette, sprich: Keine Chatsprache, anständige Groß- und Kleinschreibung, verständlicher Satzbau mit korrekter Grammatik etc. pp.

Spescha: Quatsch. 

```
<?php
$accounts = array(
    "rubstar" => Dein Passwort als MD5-Hash,
    "rubstars_mutti" => Das Passwort deiner Mutti als MD5-Hash
);

if (md5($_POST["password"]) == $accounts[$_POST["username"]]) {
    echo "Drin!";
}
?>
```


----------



## honeyboy (19. Mai 2004)

Ich denke, ich muss dir widersprechen.

beim Aufruf einer PHP-Datei wird diese ja vom Kompiler abgearbeitet - am Ende hast du "nur" mehr eine reine HTML-Datei. Wenn du jetzt also die PHP-Datei mit den Daten aufrufst, wirst du diese nicht rauslesen können, da ja alles umgewandelt wird und im Quelltext nichts PHP-mäßiges mehr steht. Auch wenn man die DAtei über den Browser speichern will, bekommst du nur ne HTML-Datei (sollte sogar bei downloadmanagern so sein).

An den Quelltext eines PHP-Files kommst du also nur durch nen Direktdownload - sprich FTP oder ähnliches. Insofern ist eine Textdatei eher unsicherer als eine reine PHP-Datei, da man das Textfile ganz normal im Browser ansehen kann - unverschlüsselt. Du kannst aber mit Verschlüsselungs-Methoden wie md5() arbeiten und so die Passwörter schützen.

txt-Datei ist bei falscher (sprich unverschlüsselter) Anwendung also ein hohes Sicherheitsrisiko, denn wenn man einmal den DAteinamen hat, hat man auch alle Users/Passes. Jedoch finde ich persönlich diese Methode "schöner" und professioneller, und wie gesagt, mit md5 ist das ganze praktisch unknackbar.


EDIT: Möchte natürlich dem ersten Replyer (gibts das Wort überhaupt?  ) widersprechen ;-)


----------



## Sven Petruschke (19. Mai 2004)

Spesha verwechselt PHP bestimmt mit JavaScript 

// Edit: Man kann die Datei mit den Passwörtern auch ausserhalb des WWW-Roots speichern oder alternativ in ein Verzeichnis mit htacces-Schutz legen.


----------



## tittli (19. Mai 2004)

ja aber wenn man jetzt den Namen der php-Datei in der Browser-Eingabe-Zeile eingibt, kommt die Datei doch als Text raus?! Oder ist das nur lokal bei mir so?

gruss


----------



## honeyboy (19. Mai 2004)

nein, die Datei wird genauso abgearbeitet wie alles andere ;-) Ist im Grunde, wie wenn du ne HTML-Datei aufrufst - was anderes ist es nämlich auch nicht (rein theoretisch gesehen  )


----------



## tittli (19. Mai 2004)

stimmt...hast recht...hab da irgendwie etwas verwechselt...sorry wenn ich falsch informiert habe!


----------



## Mairhofer (19. Mai 2004)

@Spescha
Ich glaub da ist dein Apache/PHP System nicht richtig lauffähig. Wenn man beim Aufruf einer PHP Datei, die auch wirklich als solche vom Compiler interpretiert werden kann, sprich <?php und ?>, dann sieht man keinen Text, ausser du hast natürlich ne Ausgabe drin.

Achja, vom Bekannten weiss ich, das er nicht per http://localhost drauf zugreifen wollte und es deshalb nicht ging. Ich weiss, hört sich doch in den meisten Fällen logisch an, aber wollte es zur Sicherheit nochmal erwähnen.


----------



## Soul91 (14. Juni 2007)

Und wie baue ich es in so einen Code ein ?

```
<html>
<head>
<title>Kennen Sie das Passwort?</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="phpkid.css">
</head>
<body>
<h3>Drei Passworte abfragen</h3>
<form action="hallo.php" method="post">
<input type="text" name="pass">
<input type="submit" value="Senden">
</form>
</body>
</html>
```


----------



## KD3 (14. Juni 2007)

Erstelle ein Captcha gegen Bots und du könntest z.B im Script selber dann das passwort und so angeben als md5 hash aber das passwort muss schon sehr hart sein damit es nicht so leicht geknackt werden kann  Oder du erstellst ne htaccess file und eine txt file und im txt file sind die logindaten die akzeptiert werden 

MfG
KD3


----------



## iMax_de (1. Januar 2011)

Hey, ich habe mir eben mal die Zeit genommen und ein leichtverständliche passwortabfrage mit weiterleitung erstellt:

wir brauchen zunächst 2 dateien: 
login.php und login2.php

*login.php enthält folgendes:*

```
<form action="login2.php" method="POST">

Passwort:
<input type="password" name="password"/>

<input type="submit" value="absenden"/>

</form>
```

*login2.php enthält folgendes:*

```
<?php
$password = $_POST['password'];

if ( $password == "DEIN PASSWORT HIER!" )
{
	echo '<script language ="JavaScript"> 
<!-- 
document.location.href="http://www.deine-website.de"; 
// --> 
</script>';
}
else {
	echo '<div style="color:red;font-family:arial;font-size:25px;"> Falsches Passwort!';
}

?>
```


Viel Spass damit


----------



## Kalito (1. Januar 2011)

Ansonsten wenn es sich mit den usern in Grenzen hält kannst du ja es über define(Variablenname, Inhalt) regeln. In eine php packste alle passwörter, nimmst fast alle Rechte raus und in deiner Login frgast du nach, ob das eingegene Passwort gleich der Variable ist


----------



## just-click (1. Januar 2011)

Für den öffentlichen Gebrauch aber nur bedingt geeignet, außerdem ist der Thread etwas alt um jetzt eine Lösung zu posten.


----------



## hmmNaGut (3. Januar 2011)

Statt dem

```
echo '<script language ="JavaScript"> 
<!-- 
document.location.href="http://www.deine-website.de"; 
// --> 
</script>';
```

würde ich besser

```
header('location:href://www.bla.at');
```


----------

