Variablen unter Sicherheitsaspekten prüfen und Freiheiten lassen
Stefan
- php
Moin zusammen,
ich beschäftige mich nun schon einige Zeit mit der Frage, wie ich meine Formulare und daran angeschlossene Skripte sicher machen kann. Einfach ist es ja, wenn ich prüfen will, ob es eine E-Mail Adresse ist oder die Postleitzahl in Ordnung ist. Auch Namen und Adressdaten kann ich noch mit regulären Ausdrücken überprüfen und ungeliebte Sonderzeichen ausschliessen (wobei ich mir auch hier schon nicht mehr sicher bin, ob das ausreichend ist oder doch noch genügend Angriffsfläche bietet). Anders ist es nun bei grossen Textfeldern. Hier will ich die Benutzer ja nicht unbedingt einschränken, Smilies haben ja schon diverse Sonderzeichen, wenn ich mal was in eckige oder runde Klammern schreibe, soll das auch noch ok sein, sprich, ich will den Benutzer hier nicht zu sehr einschränken. Gleichzeitig fallen mir da aber potentielle Sicherheitslücken ein (SQL Injection, Javascript Entries, Formmailmissbrauch usw.) Gibt es da eine Möglichkeit, alles Unsichere rauszunehmen? Funktionen? Handarbeit mit regulären Ausdrücken? Geht das überhaupt? Würde gern mal ein paar Meinungen hören, wie Ihr das macht, in Büchern steht ja immer nur, dass man die Variablen auf geeignete Weise überprüfen soll...
viele Grüße aus dem morgentlichen Hamburg
Stefan
echo $begrüßung;
[...] potentielle Sicherheitslücken (SQL Injection, Javascript Entries, Formmailmissbrauch usw.) Gibt es da eine Möglichkeit, alles Unsichere rauszunehmen? Funktionen? Handarbeit mit regulären Ausdrücken?
Wie du sicher schon bemerkt hast, kommt man bei der Prüfung auf zulässige Werte schnell vom Hundertsten ins Tausendste und hat dann immer noch die Hälfte vergessen. Solche Prüfungen sind nicht verkehrt, aber wichtiger ist es, die Daten gemäß dem Kontext zu kodieren, in den du sie einzufügen gedenkst. "Unsicherheiten" entstehen in Kontexten, bei denen Anweisungen und Daten gemischt übertragen werden. Es gibt aber zu jedem (etablierten) Kontext spezielle Maskierungsregeln, die den Zeichen in den Daten die Bedeutung als Anweisungsbestandteil nehmen. Für HTML sind beispielsweise die Zeichen <>& und auch "' als < > usw. zu kodieren, für URLs gibt es Regeln, SQL-Statements haben auch welche. PHP bietet für die häufigsten im Webumfeld vorkommenden Kontexte Funktionen an, die sich das ordnungsgemäße Maskieren vornehmen. htmlspecialchars() für HTML, urlencode für URLs, mysql_real_escape_string() für MySQL-Statements und so weiter.
Mit kontextgerechter Maskierung kannst du zwar die Eingabe von unsinnigen Daten nicht verhindern, aber du verhinderst damit die möglicherweise damit beabsichtigte Schädigung des Systems.
echo "$verabschiedung $name";
Danke Dir! Habe mir mal die Definition von mysql_real_escape_string angeschaut. Bin ich damit wirklich komplett vor einer MySQL Injection sicher?
viele Grüße,
Stefan
echo $begrüßung;
Danke Dir! Habe mir mal die Definition von mysql_real_escape_string angeschaut. Bin ich damit wirklich komplett vor einer MySQL Injection sicher?
Das ist Aufgabe der Funktion. Sie behandelt alle Zeichen mit Sonderbedeutung so, dass sie diese verlieren.
echo "$verabschiedung $name";
Hi Stefan,
"Die folgende Nachricht zum Thema stammt von: Stefan, 07. Juli 2007, 05:26"
viele Grüße aus dem morgentlichen Hamburg
wie kommst du dazu, Samstags um kurz vor halb sechs von "morgendlich" zu reden? Das ist mitten in tiefster Nacht! Vier bis fünf Stunden später wäre der Begriff ja angemessen ... ;-)
Ebenfalls einen guten Morgen,
Martin
Hallo Martin,
"Die folgende Nachricht zum Thema stammt von: Stefan, 07. Juli 2007, 05:26"
viele Grüße aus dem morgentlichen Hamburgwie kommst du dazu, Samstags um kurz vor halb sechs von "morgendlich" zu reden? Das ist mitten in tiefster Nacht! Vier bis fünf Stunden später wäre der Begriff ja angemessen ... ;-)
Ich bin auch schon solange auf.
Der frühe Vogel fängt den Wurm :-)
LG
Der Chris
Hallo,
Ich bin auch schon solange auf.
och nöö, vor acht aufzustehen, fällt ja schon in die Rubrik "Folter".
Und wenn ich gar frei habe, stehe ich auch selten vor neun auf.
Der frühe Vogel fängt den Wurm :-)
Ich mag aber keine Würmer! ;-)
Ciao,
Martin
Hallo ,
Hallo,
Ich bin auch schon solange auf.
och nöö, vor acht aufzustehen, fällt ja schon
in die Rubrik "Folter".
Und wenn ich gar frei habe, stehe ich auch
selten vor neun auf.
Ach Quatsch, frühes Aufstehen hält gesund! Naja
wat solls, jeder hat seinen eigenen Schlafwach-
rythmus. Muss man sich nicht drüber streiten, jeder
hat irgendwie Recht.
Der frühe Vogel fängt den Wurm :-)
Ich mag aber keine Würmer! ;-)
Och weisste, Würmer sind ein schönes Frühstück,
um damit Cops zu verwirren, wenn du schon auf der
um 04:00 auf deiner Joggingstrecke bist. :o)
gruesse aus'm ruhrpott
jens mueller
Hallo Jens,
Ach Quatsch, frühes Aufstehen hält gesund!
das kann ich mir nicht vorstellen. Wenn ich früh aufstehen _muss_, bin ich den Tag über nur unausgeschlafen und sehr reizbar. Früher ins Bett zu gehen, hilft mir nicht - dann liege ich nur lange wach und kann nicht einschlafen. Schließlich bin ich nicht abends müde, sondern morgens. ;-)
Okay, gegen Ende der Woche, wenn ich werktags ein gewisses Schlaf-Defizit angesammelt habe, bin ich auch abends allmählich müde. Aber dieses Defizit kann ich ja dann zum Glück am Wochenende wieder ausgleichen.
Naja wat solls, jeder hat seinen eigenen Schlafwachrythmus.
Eben. ;-)
Und meiner ist nun mal ein Stück nach "später" verschoben. Morgens um neun aufstehen, dafür erst nachts um halb zwei ins Bett kommen, das ist okay.
Durch diesen Biorhythmus ist bei mir sogar die Konzentrationsfähigkeit gegen Abend erst richtig gut, was auch der Grund ist, dass ich mit geistig anspruchsvollen Aufgaben meist erst nach dem Abendessen (in der Regel zwischen 20 und 21 Uhr) anfange.
Ich mag aber keine Würmer! ;-)
Och weisste, Würmer sind ein schönes Frühstück, um damit Cops zu verwirren, wenn du schon auf der um 04:00 auf deiner Joggingstrecke bist. :o)
Mpf. Ich habe einmal zugeschaut, wie jemand einen Wurm verspeist hat, und das war während der Grundausbildung beim offiziellen deutschen Wander- und Trachtenverein. Einer unserer Ausbilder musste bei jeder Gelegenheit den starken Max raushängen, und auf dem Übungsplatz erzählte er uns etwas vom Durchschlagen und Überleben in der Wildnis, und unterstrich seine Schilderungen damit, dass er betont genießerisch einen Regenwurm aß.
Ich hatte nur beim Zusehen schon Mühe, gegen einen Würgreiz anzukämpfen - und ich vermute, einigen meiner Kameraden ging es ähnlich.
Aber wie du schon andeutest: Jeder wie er mag ... ;-)
Schönes Wochenende,
Martin
Hi,
Ich bin auch schon solange auf.
Der frühe Vogel fängt den Wurm :-)
Ich bin da grad ins Bett ... ohne Wurm ;-)
mfG,
steckl
hallo,
Der frühe Vogel fängt den Wurm :-)
Achso, deshalb bin ich bisher von Viren und Würmern weitgehend verschont geblieben.
Grüße aus Berlin
Christoph S.