PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : register script!


Dönerman
12.09.2005, 15:54:12
was stimmt daran nicht??


<?php

include("dbconnect.php");
$first = $HTTP_POST_VARS["first"];
$last = $HTTP_POST_VARS["last"];
$mail = $HTTP_POST_VARS["mail"];
$tele = $HTTP_POST_VARS["tele"];
$password = $HTTP_POST_VARS["password"];
$password_w= $HTTP_POST_VARS["password_w"];
$why= $HTTP_POST_VARS["why"];



$abfrage = "SELECT mail FROM registration";
$ergebnis = mysql_query($abfrage);
$menge = mysql_num_rows($ergebnis);
while($row = mysql_fetch_row($ergebnis)){
$ma = $row[0];
}

if ($mail == $ma) {
echo "sie sind schon angemeldet.";

}

if (($first != "") && ($last != "") && ($mail != "") && ($tele != "") && ($password != "") && ($password_w != "")){

$eintrag= "INSERT INTO registration (first, last, mail, tele, password, password_w)
VALUES ('$first, '$last, '$mail, '$tele, '$password, '$password_w)";

$eintragen= mysql_query($eintrag);

}

if ($password != $password_w){
echo "passw&ouml;rter unterscheiden sich!";
}

?>


bitte um rat!

R. Woitaschik
12.09.2005, 15:59:03
Hi Dönerman,
normalerweise solltest Du auch mal ne Fehlermeldung mitgeben. Sonst ist das nur geraten.

Ich vermute mal, die Registrierung wird nicht in die Tabelle "registration" geschrieben. Liegt am fehlenden Anführungszeichen nach $password_w.

Gruß
Richard

Dönerman
12.09.2005, 16:00:49
ahh! habs! danke!

Dönerman
12.09.2005, 16:03:07
hast recht gehabt!!

feuervogel
12.09.2005, 16:21:11
dass das passwort im klartext in der db gespeichert wird, halte ich für ein sehr starkes sicherheits-manko. benutz lieber md5() oder ähnliches zum verschlüsseln.

Serp
12.09.2005, 18:13:02
Hm... Da möcht ich dann doch noch mal ne kleine Grundsatzdiskussion anstoßen: Wo genau liegt denn dieses immense Sicherheitsmanko?


Möglichkeit 1: Er kann die Passwörter seiner User auslesen. Stimmt. Das könnte man durch Verschlüsselung unterbinden. Stimmt auch. Aber: Wer für irgendwelche Logins auf Webseiten Passwörter verwendet, die an anderer Stelle wirklich wichtig sind (PW für den eigenen Rechner, Zugang zu irgendwelchen Netzwerken, Onlinebanking oder was weiß ich was noch...) ist mMn echt selber Schuld, denn das tut man einfach nicht.
Außerdem, was will man mit einem Passwort anfangen, von dem man absolut nicht weiß, an welcher Stelle es möglicherweise noch verwendet wird bzw welcher Name dort damit verknüpft ist?

Möglichkeit 2: Irgendjemand, der sich Zugang zur Datenbank verschafft, kann die Passwörter auslesen. Stimmt. Aber wenn es jemand schon so weit geschafft hat dürfte das wohl das Geringste Problem sein, dann braucht der sicherlich keine Userpasswörter mehr...


Ok, ich muss sagen, ich fahr über jedes Passwort auch erst Mal n md5() drüber. Weils einfach keine großen Umständen macht und wohl auch zum guten Ton gehört, dass Passwörter verschlüsselt gespeichert werden (und weil man seine User dann bei vergessenen Passwörtern mit grausamen zufällig erzeugten Sachen quälen kann... *fg*)
Aber den großen Sicherheitsgewinn seh ich darin jetzt nicht wirklich. Da find ich Sachen wie REGISTER_GLOBALS auf on oder unzureichend überprüfte Parameter in SQL-Statements um einiges kritischer.

feuervogel
12.09.2005, 18:40:54
es ist einfach tatsache, dass viele leute im internet für ähnliche bereiche gleiche passworte benutzen. ich bin in bestimmt 15 foren registriert und werde mir alleine für die 10 unwichtigen nicht 10 verschiedene passwörter merken. ob ich das aus dummheit mache oder aus bequemlichkeit, bitte suchs dir aus.

es gibt genügend leute, die auch für ihren email-acount das gleiche passwort benutzen. diese email-adressen dürften direkt neben der passwort-spalte in der datenbank sein.

es ist schön, dass du so weise bist, dir jedesmal ein neues passwort auszudenken, und dass es dir egal ist, das die leute, bei denen du registriert bist, es einfach so auslesen können, aber ich finde, man ist den leuten, die einem so etwas anvertrauen, es schuldig, dass sie eine gewisse privatsphäre haben an die man eben nicht ran kommt. ich persönlich bin gegen das sammeln von datenspuren und sammle immer nur die aller wichtigsten daten meiner benutzer.

ja, hm, was will ich wohl mit benutzer-passwörtern noch so machen? ich kann mich als der benutzer einloggen, unfug anstellen und schwupps kriegt der eins auf die mütze obwohl er gar nichts dafür kann.

meikel (†)
12.09.2005, 18:50:57
dass das passwort im klartext in der db gespeichert wird, halte ich für ein sehr starkes sicherheits-manko.
Das wäre es nur dann, wenn die Datenbank von jedem gelesen werden könnte.

IdR. sieht es doch so aus, daß für den Zugriff auf die jeweilige Datenbank ein Login erforderlich ist. Kann sich einer die MySQL-Logindaten erschleichen, ist das System kompromittiert. Ob dann die Paßwörter für Script ABC in Tabelle XYZ im Klartext oder verschlüsselt vorliegen, interessiert in diesem Falle keinen Toten mehr.

Viel wichtiger ist es, Paßwörter im Cookie u/o in der Session (einigen Programmierern ist dieser Unfug absolut nicht auszureden) wenigstens verschlüsselt abzulegen, weil man sowas (je nach Config) relativ leicht ausspähen kann. Besser wäre es allerdings, Paßwörter weder im Keks noch im Sessionfile zu speichern.

Serp
12.09.2005, 19:51:58
@feuervogel: Ne, ich hab nich für jedes unwichtige Forum ein eigenes Passwort. Aber ein "Mistpasswort", das eben für alle diese Sachen benutzt wird. Die Sachen, auf denen dieses Passwort dann liegt, halte ich für so unwichtig, dass es den Aufwand nicht wert sein dürfte, mein Passwort rauszulesen, nur um mir damit an den Karren zu fahren.
Wichtige Sachen wie eben zum Beispiel eMail-Accounts haben andere Passwörter, und ich wage zu behaupten, dass die auch durch reine Wörterbuchangriffe nicht zu knacken sein werden.

Und darüber hinaus: Wer sich irgendwo anmeldet und dabei persönliche Informationen preisgibt, der hat vermutlich genug Vertrauen in die Anbieter der Seite, dass sie mit diesen Informationen verantwortungsbewusst umgehen. Das sollte es dann mit einschließen, dass eben zum Beispiel auch keine Passwörter vom Admin ausgelesen und irgendwie weiterverwendet werden, auch wenn vielleicht die Möglichkeit dazu bestehen würde, weil sie unverschlüsselt gespeichert wurden. Wenn ich dem Admin zutrauen würde, so was zu tun, dann sollte ich mich ernsthaft fragen, warum ich mich dann überhaupt auf seiner Seite rumtreibe... Und dann macht es auch keinen Unterschied, ob die Passwörter verschlüsselt gespeichert werden oder nicht, denn wenn der Admin Lust auf Passwortsammeln hat, dann kann er das auch ohne weiteres betreiben, darin sind wir uns wohl alle einig.


ja, hm, was will ich wohl mit benutzer-passwörtern noch so machen? ich kann mich als der benutzer einloggen, unfug anstellen und schwupps kriegt der eins auf die mütze obwohl er gar nichts dafür kann.

Richtig. Dazu musst du dieses Passwort kennen. Um da ranzukommen gibts wiederum zwei Möglichkeiten:

Erstens, du bist der Admin. Dann hast du sowieso alle Möglichkeiten, dem Typen eins auf den Deckel zu geben.

Zweitens, du bist in die Datenbank eingebrochen. Meinst du, dann brauchst du noch irgendein Userpasswort, um Unsinn anzustellen?



Ich will damit jetzt nicht sagen, dass Passwörter einfach unverschlüsselt gespeichert werden sollen. Ich mein, sie verschlüsselt zu speichern ist ja kein Beinbruch, kostest nicht großartig Performance und hat auch ansonsten keinen Nachteil (vom Passwort-vergessen-Syndrom mal abgesehen...)
Aber ich bin halt nicht so ganz glücklich damit, dass es als riesiges Sicherheitsfeature angepriesen wird, dass die PW verschlüsselt gespeichert werden, während es an anderen Stellen umso heftiger hakt.

feuervogel
12.09.2005, 20:31:13
Wenn ich dem Admin zutrauen würde, so was zu tun, dann sollte ich mich ernsthaft fragen, warum ich mich dann überhaupt auf seiner Seite rumtreibe... Und dann macht es auch keinen Unterschied, ob die Passwörter verschlüsselt gespeichert werden oder nicht, denn wenn der Admin Lust auf Passwortsammeln hat, dann kann er das auch ohne weiteres betreiben, darin sind wir uns wohl alle einig.


für mich fällt diese frage einfach weg, ob ich ihm zutrauen würde, mein passwort auszuspionieren, wenn es verschlüsselt gespeichert wird.


Richtig. Dazu musst du dieses Passwort kennen. Um da ranzukommen gibts wiederum zwei Möglichkeiten:

Erstens, du bist der Admin. Dann hast du sowieso alle Möglichkeiten, dem Typen eins auf den Deckel zu geben.

Zweitens, du bist in die Datenbank eingebrochen. Meinst du, dann brauchst du noch irgendein Userpasswort, um Unsinn anzustellen?


ich kann mich als der benutzer ausgeben, was mir mit seinem pw wesentlich einfacher fällt, als wenn ich per hand einträge in ne db mit 80 tabellen mache.

2.: ich behaupte jetzt einfach mal, 50% aller aol-benutzer benutzen ihr email-passwort noch anderswo. und wenns das email-konto ist.

[quote]Aber ich bin halt nicht so ganz glücklich damit, dass es als riesiges Sicherheitsfeature angepriesen wird, dass die PW verschlüsselt gespeichert werden, während es an anderen Stellen umso heftiger hakt.

sicher. nur klopfe ich meine applikationen auf größt-mögliche sicherheit ab, und dazu gehört eben auch, das passwort zu verschlüsseln. ich fange db-abfragen mittlerweile nicht mehr ab, weil ich sicher gehen kann, dass sie definitiv funktionieren. außerdem: eine schwachstelle weniger zu haben ist doch gut, oder?

feuervogel
12.09.2005, 20:32:25
und wenn du so sicher bist, gib mir dein verschlüsseltes passwort, ich lass mal john drüber laufen...mal gucken ob der was rausfindet ;-)

Serp
12.09.2005, 20:50:09
Bitteschön, n Uralt-PW, das mittlerweile nicht mehr in Benutzung ist und ich daher getrost abschreiben kann: cc6cf1712c50095130f032ae532e3186

Viel Spaß damit, wenn das Ding nur n Wörterbuchangriff draufhat wirds sicherlich lustig, gegen Brute Force is natürlich kein Kraut gewachsen, aber das dürfte auch n bisschen dauern. Sag Bescheid, wie lang... ;)
Ach ja, meine aktuellen Passwörter sind noch etwas länger und kryptischer... Ich bin wohl doch n bisschen krank in der Hinsicht...^^

meikel (†)
13.09.2005, 01:26:15
für mich fällt diese frage einfach weg, ob ich ihm zutrauen würde, mein passwort auszuspionieren, wenn es verschlüsselt gespeichert wird.
Quatsch. Derjenige, der Zugriff auf die Scripte hat - und den hat der Forenbetreiber bzw. der, der den FTP Account hat, ja immer - kann ganz locker mit 2-3 kleineren Korrekturen die Paßwörter auch im Klartext abspeichern, wenn ihm mal so ist.

Wenn das Foren- oder <was auch immer>-Script nix taugt, nutzt die Paßwortverschlüsselung genauso viel wie ein zugeschlossener Tresor ohne Rückwand.

meikel (†)
13.09.2005, 01:30:09
Bitteschön, n Uralt-PW, ...
Was soll das? Wer erst mal Zugriff auf die Tabelle hat, der läßt sich von dem Kinderkram (password(), crypt(), md5() ) nicht mehr erschrecken. Der setzt das Paßwort schlicht und einfach neu. Und dann schickt er Dir eine Email, daß sich <dufte Begründung> Dein Paßwort geändert hat.

Domi
13.09.2005, 01:31:15
Bitteschön, n Uralt-PW, das mittlerweile nicht mehr in Benutzung ist und ich daher getrost abschreiben kann: cc6cf1712c50095130f032ae532e3186

Viel Spaß damit, wenn das Ding nur n Wörterbuchangriff draufhat wirds sicherlich lustig, gegen Brute Force is natürlich kein Kraut gewachsen, aber das dürfte auch n bisschen dauern. Sag Bescheid, wie lang... ;)
Ach ja, meine aktuellen Passwörter sind noch etwas länger und kryptischer... Ich bin wohl doch n bisschen krank in der Hinsicht...^^

Hast du nen glück, dass mein rechner 2 meter von mir entfernt ist, der vnc server nicht läuft und ich zu faul bin um aufzustehen .. mal schaun ob mein kleines notebook mit den paar MhZ nich nen Ergebniss bringt..

//Edit: wenn du wenigstens die im pw enthaltenen sonderzeichen sagen würdest.. ;)

Domi
13.09.2005, 02:36:56
hi @

so, habs jetzt einfach mal schnell so getested und bin mit weniger als 1 Stunde auf die Lösung gekommen:

69wkqa

kommt das hin? Ich mein das muss nichtmal das richtige Passwort sein, aber die Checksumme passt und das reicht zum Reinkommen ;)

lg

Domi

Serp
13.09.2005, 21:00:18
Jupp, passt. Also überhaupt keine Sonderzeichen drin... ;)

Ich wage jetzt einfach mal zu behaupten, dass bei nem PW mit gut doppelter Länge die Zeit deutlich über einer Stunde betragen dürfte...


Und im Übrigen beweist das dann ja doch auch, dass selbst die "verschlüsselte" (eigentlich is ne Checksumme ja alles andere als ne Verschlüsselung) nicht wirklich sinnvoll ist, wenn man die Passwörter doch ermitteln kann.

Also wirklich nur trügerische Sicherheit?

meikel (†)
14.09.2005, 00:13:43
Also wirklich nur trügerische Sicherheit?
Ja. Es gibt mittlerweile schon Datenbanken mit Strings und dem dazugehörigen MD5 Hash. <ggg>

Domi
14.09.2005, 01:44:42
Ich wage jetzt einfach mal zu behaupten, dass bei nem PW mit gut doppelter Länge die Zeit deutlich über einer Stunde betragen dürfte...


Jawoll, dem ist so.. je nach Rechner. Aber wenn ich wirklich jemand so viel kleinkriminelle Energie besitzt und meint nen "md5-pw" "recovern" zu müssen, dem isses doch scheiss egal, obs ne Stunde oder länger dauert. Also wenn ich was entshclüsseln will, dann lass ich das auf meinem Server laufen, der rennt eh 24/7. Da isses mir wurscht obs 2 oder 3 Tage dauert. Je nach wichtigkeit des PWs darfs auch länger dauern. Außerdem bin ich grad dabei des so zu machen, dass mein Notebook und die anderen 2 Rechner nach Bedarf mitrechnen. Also dann verteilt der Server auf Anfrage auch so Bereiche die probiert werden sollen und die Clients schicken dann das Ergebniss wieder zurück ob was dabei war. Wenns ganz wichtig is, dann frag ich auch noch schnell 2 oder 3 Freunde ob se nich mal schnell was helfen können ;)

Das soll jetzt allerdings nich so rüber kommen, dass ich hier kriminelle Aktivitäten ausübe. Ich habe eher Spass an php und Delphi und mit solchen Projekten kann man auch einiges lernen!! "Nutzen" tu ich des eh nie.. nur für so Sachen wie hier..

Also.. schönen Abend noch und schlaft gut =)

Domi

meikel (†)
14.09.2005, 07:01:40
Rate mal, warum es auf Linux Systemen Sitte sein sollte, daß sich der root nicht per SSH einlogen darf? Ganz einfach, weil jeder weltweit den Namen kennt. Er braucht also in dem Falle nur noch die Hälfte rauszukriegen.

Ob der Programmierer Paßwörter mit sonstwas verschlüsselt speichert ist schnurzpiepe, so lange er sicherstellt, daß keiner an die Daten rankommt. Das bedeutet: .htpasswd, sqlite.db u/o sonstwas haben definitiv nix im Documentroot verloren. Und falls der Interpreter mal nicht will, sollte man solche Files wie zB. mysql-zugang.php auch verstecken. Und wer mod_auth_mysql verwendet, hat ebenfalls ein Problem, wenn der Apache dummerweise mal das .htaccess (mit den SQL Zugangsdaten) anzeigen sollte.

Fazit:
"verkryptete" Paßwörter in der Datenbank erhöhen die Sicherheit absolut nicht, aber sie schaden wenigstens nicht. <ggg>