• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Passwortabfrage - ist das sicher und gut?

Status
Für weitere Antworten geschlossen.

Frank

Neues Mitglied
Hi,

Nach dem ich schon etliche Passwortabfragen in JS geschrieben habe und immer damit bombardiert wurde, dass sie nicht sicher sein (stimmt ja auch) habe ich jetzt meinen ersten pw schutz in php entworfen.
zum login füllt man ein Formular aus, welches dann an meine php seite gechickt wird

Ich möchte von euch dieses wissen:
-Ist das eine sichere Art der Passwortabfrage?
-Sind fehler im Script?
-Kann man durch ein anderes script die arrays dauerhaft erweitern (Registrieren = hinzufügen eines eintrags im array so dass man sich einloggen kann -> wenn wie?)


Seite mit dem Formular:
Code:
<head>
 <title>SCO-d.de.vu // SCO-d.de.vu</title>
 <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
 <meta name="author" content="Frank">
 <meta name="Thanks" content="Thanks to Trojan for hosting this site">
 <link rel="stylesheet" href="formate.css" type="text/css">
  <script type="text/JavaScript">
   <!--
   function test()
    {
    document.getElementById('no').style.display = "none";
    document.getElementById('yes').style.display = "block";
    }
   -->
  </script>
</head>
<body onLoad="test()">
<span id="no" style="display:block;">Bitte aktivieren sie JavaScript...</span>
<span id="yes" style="display:none;">
<center>
<p class="headline">Login</p>
<p class="node">aus Sicherheitsgründen ist die Seite pw-geschützt</p>
<p class="node" style="color:red;">Die alten Accounts sind gelöscht</p>
<p class="headunder">Login</p>
<form action="test.php" method="post" class="txt">
 <table class="txt">
  <tr>
   <td rowspan="4">[img]keys.png[/img]</td>
   <td>Benutzername:</td><td><input type="text" name="User" size="15"></input></td>
  </tr>
  <tr>
   <td>Passwort:</td><td><input type="password" name="pw" size="15"></input></td>
  </tr>
  <tr>
   <td><input type="reset" value="l&ouml;schen"></input></td>
   <td><input type="submit" name="submit" value="Login"></td>
  </tr>
 </table>
</form>
</span>
</body>
</html>
und hier die php seite:

[php:1:c43eeb0960]

<html>
<head>
<title>Registrieren</title>
</head>
<body>
<center>
<?php
$user = $_REQUEST['User'];
$user = strtolower($user);

$pw = $_REQUEST['pw'];
$pw = strtolower($pw);

$checkuser = array ("benutzer1", "benutzer2" );
$checkpw = array ("passwort von benutzer1", "passwort von benutzer 2" );
$i = 0;
$j = count($checkuser);
while ($user != $checkuser[$i])
{
if ($j >= $i)
{
$i ++;
}
else
{
break;
}
}

if ($i > $j)
{
echo 'Der angegebene Benutzername wurde nicht gefunden!
';
echo '<a href="javascript:history.go(-1);" />Zur&uuml;ck</a />';
}
else
{
echo 'Benutzername gefunden!';
if ($pw != $checkpw[$i])
{
echo '
Passwort falsch
';
echo '<a href="javascript:history.go(-1);" />Zur&uuml;ck</a />';
}
else
{
echo '
Passwort korrekt
';
echo 'Viel spaß auf der Seite!
';
echo '<input type="button" value="Seite betreten" onClick="document.laction.href=\'http://85.214.45.201/sco-d/index.html\'"/></input>';
}
}
?>
</center>
</body>
</html>[/php:1:c43eeb0960]

PS: Ich bin php noob -> hab seit 2tagen n bissel im net rumgeklickt was php angeht. Ich bin über jeden rat erfreut
 
mit php können grundsätzlich keine sicherheitslücken entstehen, da ja eh' niemand an deinen code 'rankommt. die ausführungsweise ist dann aber schon mangelhaft. wenn die daten stimmen, wird ein link angezeigt, die zu einer datei führt. überleg' mal, der link kann auch extern aufgerufen werden, damit ist die ganze passwortabfrage sinnlos.
mach' das lieber mit echo().

Nils aka XraYSoLo
 
echo() ist schon mal ganz falsch. das ist nähmlich KEINE FUNKTION.

versuch lieber eine Session zu setzen und die in den aufgerufenen datei zu überprüfen -> tutorial gibts wie sand am Meer
 
niklasboelter schrieb:
echo() ist schon mal ganz falsch. das ist nähmlich KEINE FUNKTION.

streng gesehen nein, sondern ein sprach-konstrukt...
...HERRGOTT, DENKSTE ECHT, DAS WEISS ICH NICHT AUCH??
deine ewigen verbesserungen gehen einem langsam aufen sack, wirklich...
und vorallem, wer "nämlich" mit "h" schreibt...

..sry, will net ausfallend sein...

damit hätte er doch noch weniger anfangen können, wenn ich ihm gesagt hätte: "mit dem sprach-konstrukt...".

Nils aka XraYSoLo
 
Danke Ben,

da muss ich wohl noch n bisschen üben ^^
Ich hab mich entschlossen dein ganzes Script zu übernehmen.

könntest du mir hier noch posten:
1. Wie erstelle ich die benötigte table in meiner MYSQL datenbank (mit welchem code)
2. Kannst du noch ein script posten, mit dem daten in die datenbank eingefügt werden, sozusagen als registrieren formular und dann speichern in der db

Vielen DAAAAAAAAAANK
 
Öhm. Das ist nur ein Skript für einen einzigen User. Das kannst Du aber natürlich insofern erweitern, indem Du den hier vorhandenen SQL-Dump um eine INSERT-Anweisung Deiner Wahl erweiterst.

Falls Du auch die Möglichkeit haben willst, dass sich neue User registrieren können, was imho bei kleinen Seiten zumeist nicht nötig ist, müsstest Du das Skript insoweit modifizieren, dass Du ein Formular anbietest, welches dann in ein Skript - nennen wir es register.php - springt.
Dort überprüfst Du, ob der Nutzername, der eingetragen werden soll, schon existiert
Code:
SELECT COUNT(id) FROM usertabelle WHERE username = $username
Mal als Pseudocode. Wenn das Ergebnis dann größer als 0 ist, ist der Name schon vorhanden und der User muss einen anderen wählen.

Ist der Name nicht vorhanden wird eine INSERT-Anweisung an die Datenbank gesendet und der Name und das Passwort (md5-"verschlüsselt" [Erklärung für die Anführungszeichen]) in der Usertabelle gespeichert.

Danach sollte man sich mit den eingetragenen Daten anmelden können.
Was ich jetzt genau als Skript hier schreiben sollte weiß ich nicht. Ich würde es aber auch nicht machen .. aufgrund von: Selbst ist der Mann / die Frau!

Grüße, Ben.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben