Loginscript sicher?

Hi

ich kann dir nicht nicht sagen ob das Script sicher ist.
Weil was ist den sicher
Nichts ist sicher vor Hacker angriffen! Nur ist die Frage ob dein Script überhaupt so sicher sein muss?
Für was benötigst du es denn?
Ich sage wenn du htaccess oder php (Variablen mit POST übergeben und SESSION verwenden) bist du schon sicher. Wenn du jetzt noch die SESSION ID den Benutzername und die IP und die Zeit in eine DB schreibst und bei jedem Seiten aufrufen diese Daten abgleichst bist du schon zimmlich sicher.
Nur ist die Frage lohnt sich schon dieser Aufwand?
Bei meinen Loginscripts ziehe ich PHP vor und übergebe Formulardaten mit POST und danach die Daten mit SESSION.
Diese kleinen und unbekannten Daten welche ich schützen will benötige ich sicher nicht mehr!
Andere Users können dir sicher mehr über dieses Thema schreiben nur musst du dir immer vor den Augen halten ob der Aufwand welcher du betreibst auch nötig ist um deine Daten zu schützen.
 
Hmm, Variablen, nur weil sie mit POST übertragen werden, als Sicher anzunehmen wäre törricht. Was prädestiniert POST-Vars denn vor GET-Vars außer der möglichen zu übertragbaren Datenmenge?

Wichtig ist immer Werten zu misstrauen, die nicht aus deinen eigenen Scripten/Datenquellen kommen, meistens kann im Falle Datenquelle DB nicht mal dieser trauen.

Zu deiner Frage, ob das Script sicher ist. Ich glaub, da kann man sich 4-5 Stunden hinsetzen, und würde sich immer noch nicht sicher sein, das es sicher ist. Alles was über ein Hello-World hinaus geht, sprich Variablen verwendet, die vom User veränderbar sind, ist potentiell eine Gefahrenquelle. Ein Tipp hab ich noch: Mach die Variablen für username und passwort zu Konstanten oder noch besser zu Defines. Auch diese Variablen könnten u.U. überschrieben werden.
 
Was prädestiniert POST-Vars denn vor GET-Vars außer der möglichen zu übertragbaren Datenmenge?
Auch heikle Daten sollten ausschließlich über POST- statt über GET-Methode verschickt werden. Denn sämtliche im URL enthaltene Werte werden unter anderem nicht nur vom Webserver protokolliert sondern beispielsweise auch oft von Proxy-Servern auf dem Weg dort hin. Die übertragenen Daten wären dort also für alle einsehbar. Klar wäre eine verschlüsselte Übertragung noch besser, doch auch dort wird der angefragte URL nicht verschlüsselt und wäre in der Log-Datei einsehbar.
Zudem dürfen Antworten auf POST-Anfragen nicht im Cache gespeichert werden.
 
Also vielen Dank für euere Ratschläge.
Ich ziehe daraus die Folgerung, dass das Script sehr sicher ist, aber auch, dass man sich nie richtig auf der sicheren Seite fühlen sollte :P

Und dass ich die Variablen für Username und Passwort in "Defines" speichern sollte.
 
Hi,

Gumbo: Zu deinem Einwand mit den Proxys.

Ich hatte mir ma 'n paar zeilen zusammengeschrieben um die übertragung meiner
Urls etwas sicherer zu machen. Meinst du sowas ist prinzipiell lohnenswert einzubauen?

PHP:
$mystring = $_SERVER['QUERY_STRING'];  
$mystring = base64_decode($mystring);  
$teil = explode("&", $mystring);       
$zahl = count($teil);
$i=0;
while($i < $zahl){
$new_var = explode("=", $teil[$i]);
${$new_var[0]} = $new_var[1]; 
$i++;
}

und die Übergabe dann:

PHP:
echo ("<a href=\"?" . base64_encode("var1=test1&var2=test2") . "\">huhu</a>");

David
 
Dadurch sind die Daten nur kodiert, können aber auch einfach wieder dekodiert werden. Wer tatsächlich auf der Suche nach sensiblen Daten ist, wird das nicht zurückschrecken.
 
Das ist klar, prinzipell ist ja alles was nicht one-way-verschlüsselt ist wieder herstellbar.
Der Gedanke war hier nur das so umzusetzten das nicht so einfach mit automatisierten Systemen alle variablen die übergeben werden ausgelesen werden können.

Sicherer wäre natürlich ein eigener Algorythmus.

Bzw. eine Funktion die mittels Pasphrase verschlüsselt. Gibt es so etwas bereits vordefiniert?

So in der Art:

PHP:
meine_verschlüsselung_encode([STRING], [PASSPHRASE]);
 
Zurück