phpbar.de logo

Mailinglisten-Archive

[php] Frage zu php Kontaktformular

[php] Frage zu php Kontaktformular

Christoph Jeschke christoph.jeschke at gmail.com
Don Nov 20 20:59:18 CET 2008


* Sascha Meyer:

Lieber Sascha,

> ich muss mich schon sehr wundern, was Du für Vorschläge auf Deine Anfrage
> erhälst ... wegen einem nicht laufenden Script direkt alle
> Sicherheitseinstellungen für PHP über den Haufen zu werfen finde ich schon
> allerhand, aktiviertes "register_globals" ist z.B. ein echtes
> Sicherheitsrisiko! Also lieber erst mal die Basics lernen und das Script
> umschreiben, statt Türen aufreißen ;)

register_globals ist keine "Sicherheitseinstellung". Das Problem sind nicht 
die automatisch registrierten Variablen, sondern die ungeprüfte, bzw. 
uninitialisierte Nutzung eben solcher.

> Ich habe Dir daher mal Dein Script umgearbeitet und angehängt, sollte so
> auch funktionieren. Hierbei werden Variablen nur aus den passenden
> vordefinierten Variablenarrays gelesen, die auch benötigt werden, dies sind
> in Deinem Fall nur Werte aus dem $_POST-Array (Daten, die per Formular
> übertragen werden; mehr zu "predefined variables" findest Du hier:
> http://de.php.net/manual/de/reserved.variables.php ).

Du verwendest $PHP_SELF, also eine automatisch registrierte global Variable.

Du verwendest ereg() um eine E-Mail-Adresse zu validieren. In PHP5 gibt es 
hierfür Filter.

> In den ersten Zeilen 
> des Scripts findest Du zwei Angaben zur Fehlerausgabe, die Du später bitte
> wieder raus nimmst (die eine sorgt für die generelle Fehlerausgabe, die
> zweite für die Anzeige beliebiger Meldungen inkl. Warnings, Infos und
> Notices).

E_ALL sollte auch im Produktiveinsatz aktiviert sein, jedoch nicht ausgegeben 
werden. Sinnvollerweise könnte man Meldungen in einen Logfile schreiben.

> Auch das erwähnte "@"-Zeichen vor der mail()-Anweisung habe ich 
> rausgenommen, daher sollten Fehler beim Aufruf der Mailfunktion jetzt auch
> angezeigt werden (Infos zur Fehlerunterdrückung gibts hier:
> http://de.php.net/manual/de/language.operators.errorcontrol.php).

Ansonsten vermisse ich, dass erkannte Fehler auch an den Betreiber gemeldet 
werden, bspw. in dem man sie in einen Logfile schreibt.

-- 
Der Satz des Pythagoras umfaßt 24 Worte, das Archimedische Prinzip 67,
die Zehn Gebote 179, die amerikanische Unabhängigkeitserklärung 300 -
und allein Paragraph 19a des deutschen Einkommensteuergesetzes 1862
Worte.
		-- Erwin Huber

php::bar PHP Wiki   -   Listenarchive