• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Login via php

Haerti

New member
Tag zusammen,

ich hoffe ich bin hier richtig.

Ich habe auf meiner Seite ein Login Formular via php erstellt.
Dieses Formular habe ich zu Testzwecken einmal auf eine neue Seite ausgelagert:
URL_Login

Mein Frage wäre jetzt ob das Formular genug Sicherheit bietet, bzw. was man noch ergänzen kann um das Login abzusichern.
 
Geht klar:

PHP:
<?php
//Benutzerkonten
$Admin     = "User";    $AdPw    = "T€st"; 
$user     = $_POST["user"];
$password = $_POST["password"];
$check    = $_POST["check"];

if ($check != "")
{
	if($user != "" && $password != "")
	{
			if ($user == $Admin && $password == $AdPw)
			{
				echo "<h1 align ='center'>Login erfolgreich</h1>";
			}
			else
			{
				echo "<h1 align ='center'>Login fehlgeschlagen</h1>";
			}
	}
	else
	{
		echo "Bitte alle Felder ausfüllen";
	}
}
?>
<html>
 <body>
  <form name="login" action="<?php echo "$PHP_SELF"; ?>" method="post">
  <input type="hidden" name="check" value ="1">
   <table>
     <tr> 
	    <td>Benutzername:</td>
		<td><input type ="text" name ="user" id="user"></td>
	    <td> </td>
		<td>Passwort:</td>
		<td><input type="password" name ="password" id="password"></td>
		<td> </td>
		<td><input type ="submit" value="Login"></td>
	 </tr>
	</table>
   </form>
 </body>
</html>
 
Ein Login-Script kann man das ja noch nicht wirklich nennen. Zum Einem fehlt wie du Seiten schützt die man nur als angemeldete Benutzer sehen darf, zum Anderem wird nirgends gespeichert ob ein Benutzer angemeldet ist oder nicht, sprich er muss bei einem Reload neu anmelden.
 
zum Anderem wird nirgends gespeichert ob ein Benutzer angemeldet ist oder nicht,

Ansich muss das nicht gespeichert werden, da nach dem Anmelden lediglich ein Insert in meiner Datenbank gemacht werden darf. Das heist nach beenden des Speichern kann der User seine Daten wieder verlieren.

Zum Einem fehlt wie du Seiten schützt die man nur als angemeldete Benutzer sehen darf

In wie fern kann ich das den machen, der Login bezieht sich lediglich auf die Seite in der er eingebaut wird eine andere Seite spielt daher keine Rolle, genügt für diese Art dann dieses einfach Skript ???
 
Ansich muss das nicht gespeichert werden, da nach dem Anmelden lediglich ein Insert in meiner Datenbank gemacht werden darf. Das heist nach beenden des Speichern kann der User seine Daten wieder verlieren.

In wie fern kann ich das den machen, der Login bezieht sich lediglich auf die Seite in der er eingebaut wird eine andere Seite spielt daher keine Rolle, genügt für diese Art dann dieses einfach Skript ???
Warum sollte sich überhaupt jemand einloggen wollen?
 
Warum sollte sich überhaupt jemand einloggen wollen?

Ich bin dabei eine Seite zu pflegen auf der ich über ein eigenes System mit einen Insert den Inhalt von Textdateien und Pfade für Bilder in der Datenbank speichere. Diese von anderen Seite über Select ausgeben werden. Mit dem Login will ich dafür sorgen das nur ich einen Insert durchführen darf und nicht jeder x beliebige der die Seite besucht.
 
Ich bin dabei eine Seite zu pflegen auf der ich über ein eigenes System mit einen Insert den Inhalt von Textdateien und Pfade für Bilder in der Datenbank speichere. Diese von anderen Seite über Select ausgeben werden. Mit dem Login will ich dafür sorgen das nur ich einen Insert durchführen darf und nicht jeder x beliebige der die Seite besucht.
Ein typischer Fall von .htaccess
 
Ich denke mal, was man hier versucht dir mitzuteilen..

Wenn du die LogIn-Daten nicht speicherst und bei Seitenaufruf kontrollierst, kannste du dir den LogIn sparen, da deine Seite auch so aufrufbar wäre(stichwort wäre hier "Session-Variablen").

Ansonsten schließ ich mich Albu an.

Gruß
 
Ok alles klar,

ich habe jetzt dann mal versucht das ganze mit .htaccess zu machen.
.htaccess-Datei
Code:
AuthType Basic
AuthName Admin-Bereich
AuthUserFile passwoerter/htpasswd
AuthGroupFile passwoerter/group
require user Daniel

order deny,allow
allow from all

Satisfy all

.htpasswd-Datei
Daniel:1$wQpKoKngbqw

Group.txt
Code:
Admin: Daniel

Wenn ich jetzt eine Seite aufrufen will, die im selben Verzeichnis liegt wie die .htaccess Datei dann kommt das Anmelde Fenster, aber auch wenn ich die richtigen Daten eingeben bekomme ich einen Serverfehler (Fehler 500):

Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist. Der Server ist entweder überlastet oder ein Fehler in einem CGI-Skript ist aufgetreten.

Weis vllt. jemand was ich falsch gemacht habe ?
 
Also um noch mal auf das Thema zurück zukommen, ich habe die Fehler in der .htaccess Datei ausgebessert:

.htaccess
Code:
AuthType Basic
AuthName Admin-Bereich
AuthUserFile passwoerter/.htpasswd
AuthGroupFile passwoerter/Group.txt
require user Daniel

order deny,allow
allow from all

Satisfy all

.htpasswd im Verzeichnis passwoerter
Code:
daniel:gf/PS4/93O8FQ

Group.txt im Verzeichnis passwoerter
Code:
Admin:Daniel

der Fehler besteht aber weiterhin, woran kann das den noch liegen ?
 
Also um noch mal auf das Thema zurück zukommen, ich habe die Fehler in der .htaccess Datei ausgebessert:

.htaccess
Code:
AuthType Basic
AuthName Admin-Bereich
AuthUserFile passwoerter/.htpasswd
AuthGroupFile passwoerter/Group.txt
require user Daniel

order deny,allow
allow from all

Satisfy all
Du solltest hier die absoluten Pfade benutzen. relative Pfade können nicht funktionieren, da .htaccess ja auf alle Unterverzeichnisse wirkt. Ausserdem ist es sinnvoll die Passwortdateien ausserhalb der von DocumentRoot zu legen, so dass diese nicht über den Server erreichbar ist.
 
Du solltest Dich schon entscheiden, ob Du Daniel groß oder klein schreibst...

Hm ok ist verständlich, aber ändert leider nix.
Ich hab echt überhaupt kein Plan mehr woran es liegen könnte.

SELFHTML: Webserver/CGI / Webserver / .htaccess - Server-Reaktionen kontrollieren

Selbst nachdem ich das nach der Beschreibung mach kommt nix dabei raus!

.htaccess
Code:
# .htaccess-Datei für Web-Verzeichnis /service
AuthType Basic
AuthName "Service-Bereich"
AuthUserFile passwoerter/.htusers
AuthGroupFile passwoerter/.htgroups
Require user  Daniel
Require group Admin


order deny,allow
allow from all

Satisfy all
.htgroups
Code:
# GruppenDatei für Web-Projekt
Admin: Daniel
.htusers
Code:
Daniel:/kRzQgdYF4kfs
bzw.
.htusers
Code:
Daniel:test
 
Zurück
Oben