Ich habe die Fehlermeldung gepostet und den code in tags gesetzt.... was sonst noch????????????????????????????????????????????????????
Login- DB Einträge vergleichen
Einklappen
X
-
Sorry werd hier grad emotional.. ^^ Ich bin sauer auf mic hselbst.. weil ichs nich kapier.. Aber Username ist doch gar kein String sondern der NAme der Spalte.
Achso... du meinst den $_POST[username] ^^ Und in welchen Situationen muss ich nur den key in '' schreiben? Also so hier : $_POST['username'] ?Zuletzt geändert von Lexus_Ks; 07.06.2006, 21:42.-Am Anfang war das Wort-
Ich habe fertig mit Abi ^^
Kommentar
-
Ich jede ja auch nicht von "Username", sondern von deinem Usernamen. Und der ist ein String und sollte auch als solcher gekennzeichnet werden.
Achso... du meinst den $_POST[username]
Und in welchen Situationen muss ich nur den key in '' schreiben?
Kommentar
-
Aber hier habe ich alles in ' ' geschrieben ( '$_POST[username]' ) und es funktioniert... und ich habs jetzt eben schnell ausprobiert: Wenn ich es so schreibe: $_POST['username'] funktioniert es nicht -_--Am Anfang war das Wort-
Ich habe fertig mit Abi ^^
Kommentar
-
Ich kapier des nit -___- das is sehr durcheinander
Ich merk mir einfach wie ich es das nächste mal konkret an so einer Stelle mache.
Ich habe noch eine Frage..... Wenn ich mehrere Funktionen verschachtel:
Funtkion1(Funktion2(Funktion3($variable)));
Wird dann beim Parsen zuerst die äußerste Klammer abgearbeitet und dann geht PHP nach innen alle Funktionen durch, oder ist es umgekehrt?-Am Anfang war das Wort-
Ich habe fertig mit Abi ^^
Kommentar
-
Also habe hier mal die Datei, die mein Formular verarbeitet und in die DB schreibt. Wäre toll wenn ihr mir sagt, was da noch besser gemacht werden könnte und was verbessert werden MUSS (wegen der sicherheit usw).
Danke
PS: Seht mal davon ab, dass in der hochgeladenen Datei noch die Arrayausgabe drin ist ^^Angehängte DateienZuletzt geändert von Lexus_Ks; 07.06.2006, 23:06.-Am Anfang war das Wort-
Ich habe fertig mit Abi ^^
Kommentar
-
Deine ersten Abfragen hast du nicht gegen SQL Injection abgesichert.
Und bei den Updates nutzt du dann addslashes statt dem (verflixt, wie oft muss man das hier eigentlich noch erzählen?) dafür vorgesehenen mysql_real_escape_string.
Außerdem verunstaltest du die Daten noch vor dem Einfügen in die DB mit htmlspecialchars - ist idR. unsinnig, Daten werden jeweils nur für den aktuellen Kontext behandelt. Und der Kontext "HTML" ist der DB vollkommen wurscht, der kommt erst bei der Ausgabe der Daten ins Spiel.I don't believe in rebirth. Actually, I never did in my whole lives.
Kommentar
-
Deine ersten Abfragen hast du nicht gegen SQL Injection abgesichert.
Und bei den Updates nutzt du dann addslashes statt dem (verflixt, wie oft muss man das hier eigentlich noch erzählen?) dafür vorgesehenen mysql_real_escape_string.
Aber ich habe es ,um mich zu verteidigen, so im PHP Quake Tutorial gelernt. Zuerst Stripslashes() und dann umgekehrt mir addslashes ^^ Wo ist der unterschied zwischen addslashes und mysql_real_escape_string? Benutze ich das auch in Verbindung mit stripslashes?
Außerdem verunstaltest du die Daten noch vor dem Einfügen in die DB mit htmlspecialchars - ist idR. unsinnig, Daten werden jeweils nur für den aktuellen Kontext behandelt. Und der Kontext "HTML" ist der DB vollkommen wurscht, der kommt erst bei der Ausgabe der Daten ins Spiel.
Doch dies ist so, wie es da steht, eine riesige Sicherheitslücke. Man darf NIE Daten aus der URL oder aus dem Formular direkt in eine Datenbank speichern lassen. Man muss die Eingaben immer prüfen und ggf. bestimmte Zeichen löschen oder bearbeiten. Denn ohne solche Überprüfungen ermöglichen wir Hacker die Möglichkeit für XSS. Deswegen müssen wir einmal die HTML-Zeichen wie < und > umwandeln. Dies machen wir mit htmlspecialchars.-Am Anfang war das Wort-
Ich habe fertig mit Abi ^^
Kommentar
-
Original geschrieben von Lexus_Ks
Wenn mir jemand erklärt, dass es der Sicherheit nicht wehtut das wegzulassen, dann mach ichs auch, aber ich denke ich tue mir nicht weh dabei und so spare ich es mir doch bei der Ausgabe.
Aber diese Funktionen wendet man idR. bei der Ausgabe an.
Deine Datenbank stört HTML nicht im geringsten, also gibt es kaum einen Grund, es beim Einfügen in diese zu entschärfen. Hat den Vorteil, dass du die Daten in der DB immer noch original vorliegen hast, wenn du sie mal bearbeiten willst - und dich dann nicht mit kodierten Sonderzeichen rumschlagen musst.I don't believe in rebirth. Actually, I never did in my whole lives.
Kommentar
-
Achso meinst du das... klaro *nachdenk* html oder java würde ja erst bei der Ausgabe tätig werden... aber jetzt überlege ich was überwiegt.... entweder das Verlangen danach, die ganze Sache im Original vorliegen zu haben oder etwa die Faulheit.... denn wenn ich es so mache wie du sagst, müsste ich es ja jedes mal einzeln dieser funktion unterziehen (jedesmal wenn ich die datenauslese)... andererseits kann man da ja auch eine Funktion schreiben -.- .. darüber muss ich mir noch einen Kopf machen.
Mir ist grad die Sache mit dem Addslashes und vor allem it dieser SQL Injection wichtiger. Habe mir gerade einen artikel darüber durchgelesen böse Sache ^^ Aber das dabeistehende Tutorial um sowas zu verhidnern habe ich nicht verstanden. Wenn jemand ein einfaches findet, dann sagt bitte bescheid, umegkehrt gilt das gleiche.-Am Anfang war das Wort-
Ich habe fertig mit Abi ^^
Kommentar
Kommentar