2017-03-22 2 views
0

Ich baue eine kleine Website, wo ich der einzige Benutzer sein werde (sagen wir, meine Zugangsdaten sind "myuser" mit dem Passwort "mypassword"). Auf der Login-Seite habe ich dieses einfache Formular:PHP - Muss ich dieses einfache Formular für die Sicherheit validieren?

<form method="post"> 
<p>Username: <input type="text" name="usr"></p> 
<p>Password: <input type="text" name="passwd"></p> 
<p><input type="submit" value="Login"></p> 
</form> 

Ist es sicher, nur das Formular so zu validieren?

// After checking if the request is POST... 
if($_POST["usr"]=="myuser"&&$_POST["passwd"]=="mypassword") { 
    // Set the cookie and go to admin page... 
} else { 
    // Show login error... 
} 

Oder muss ich eine gewisse Sicherheitsmaßnahme für die beiden $ _POST Variablen anzuwenden (zum Beispiel, indem sie mit htmlspecialchars oder so ähnlich Filterung)? Wie Sie sehen, werden die Berechtigungsnachweise nicht in einer Datenbank gespeichert, und auch diese Variablen werden nirgendwo sonst im Code aufgerufen. Daher sehe ich keine Gefahr, selbst wenn ein böswilliger Benutzer versucht, das Formular mit SQL Injection oder XSS zu hacken .

Also, habe ich etwas verpasst? Besteht eine potentielle Gefahr, den Code so zu belassen?

+2

Es wird sicherlich einige Kriegstreiber geben, die sagen, das ist verrückt, aber es ist in Ordnung. –

+0

Sie sollten jedoch darauf achten, SSL-Verschlüsselung (https) zu verwenden. – arkascha

+0

* wo ich der einzige Benutzer sein werde * damit die Webseite nicht online ist? –

Antwort

0

Ich denke, es ist in Ordnung, Sie können eine Hashe-Funktion & etwas hinzufügen, um einen Brute-Force-Angriff zu verhindern, ein wenig mehr zu sichern. :) (Sorry kann ich noch nicht kommentieren)

+0

Über Brute Force, ich werde ReCAPTCHA hinzufügen, bevor die Website live geht. – Speedhoven

-2

Mit PHP können wir mysql_real_scape_string() verwenden, diese Funktion hat einen Parameter, der eine Zeichenkette ändert, die die speziellen Zeichen löscht. Diese Funktion gibt eine sichere Zeichenfolge zurück, jetzt können wir diese Zeichenfolge in einer SQL-Abfrage ausführen.

+0

Lesen Sie die Frage –

+0

Es ist keine Datenbank mit diesem Formular verbunden, also selbst wenn ein Benutzer eine SQL-Abfrage in das Formular eingibt, würde nichts passieren. – Speedhoven