Re: Zufälle gibts: Server über Exploit in phpix fast gehackt...
Posted: 2004-02-16 19:06
Ganz einfach: So denkst du immer nach "Muss ich jetzt initialisieren oder nicht?" Irgendwann vergisst du es mal an der falschen Stelle und schon könnte sich daraus später ein Problem ergeben, oder du änderst was, was dann eine Intialisierung doch notwendig macht, du es aber nicht merkst.Relativity wrote:.mag sein das manche das faulheit an falscher stelle
nennen aber wieso soll ich eine variable leeren wenn
ich sie direkt danach wahlweise mit x oder mit y belege
und sie somit in jedem fall überschrieben wird, egal
ob da etwas (oder nix) drinnesteht.
Wenn du immer Variablen initialisierst, dann hast du das Problem nicht und hast immer einen definierten Ausgangszustand. Schütze dich einfach vor dir selbst. Du willst nicht wirklich Schrödingers Katze mit deinen Variablen spielen. Wenn du es immer machst, dann kann dir kein Fehler unterlaufen.
Wenn du Variablen definierst, dann initialisiere sie auch. Gehört übrigens auch zum guten Code, variablen immer zu definieren und nicht erst dann wenn man sie mal braucht... Aber das ist nen anderes Thema.
Ist genau dasgleiche wie mit den ganzen Buffer Overflows. Weil die Coder meinten, sie wüssten in welchem Bereich sich eine Eingabe befindet, haben sie keine Bereiche abgefragt: "Ist ja nicht nötig, ich weiss ja was da kommt, das reicht dicke". Das ist einfach Schlamperei, kostet beim Programmieren keine Zeit und langsamer wird's Programm nun nicht wirklich - die Zeiten der Lochkarten als Bits in Gold aufgewogen wurden sind lange vorbei.
Bei beiden Sachen wird das Programm nicht abstürzen und wenn es im normalen Einsatzbereich läuft auch keine anderen Probleme machen. Aber jemand mit böswilliger Absicht könnte diese Schlampigkeit ggf. mal ausnützen. Deswegen heisst es auch du brauchst nicht initialisieren, weil läuft schon (aber besser ist es trotzdem - mach mal die Warnings an). Geschlossene System gibt es nicht in freier Wildbahn und im Labor höchstens annähernd.
Dein Auto schliesst du ja auch ab und nicht nach dem Motto "Och ich schliesse es nur ab, wenn es mal ne üble Gegend ist". Irgendwann bist du mal in einer Gegend die gut aussiehst, sie ist es aber nicht - oder die bösen Jungs kommen in eine gute Gegend auf der Suche nach leichten Opfern, die meinen, sie hätten alles bedacht damit sie ihren Schlüssel so wenig wie möglich benutzen müssen - könnte sich ja abnützen. Tja, die Karre ist dann weg und der Schlüssel immernoch fast fabrikneu...
Es geht hier um gutes Programmieren und Stil, der von Anfang an zukünftige Fehler und Schwachstellen vermeidet.