Soweit scheint dieses Stück Code genau das zu machen was es soll. Eine Datei wird generiert und landet immer frisch auf dem Tisch:
header(‘Content-Type: image/png’);
header(‘Content-Disposition: attachment; filename=”flyer.png”‘);
header(‘Content-Transfer-Encoding: binary’);
header(‘Content-Length: ‘ . filesize($tmpfile));
header(‘Cache-Control: no-store, no-cache, must-revalidate, proxy-revalidate, private’); // HTTP/1.1
header(‘Cache-Control: pre-check=0, post-check=0, max-age=0′, false);
header(‘Last-Modified: ‘.gmdate(‘D, d M Y H:i:s’) . ‘ GMT’);
header(‘Expires: ‘ . gmdate(‘D, d M [...]
Cachen verboten
Administration via URL
Kleine Ursache, große Wirkung:
Ein kleines Script auf dem Server soll einmalig an die User eine eMail schreiben. Man ruft es im Browser auf, es versendet, schreibt noch brav ein wenig Logging auf den Schirm und ist fertig. Toll!
Leider: Im Browser war ein Alexa-Plugin installiert (die google Toolbar wäre wohl der gleiche Fall), dadurch lernt eine [...]
Reload sichere Formulare
Ein beliebter Fehler ist, einen Reload einer Webseite nicht im Workflow einzuplanen. Am besten pflegeleicht wird es, wenn man Aktion und Reaktion auf verschiedene URLs und Dateien verteilt. Als Beispiel mal ein Kontaktformular:
kontakt.php
kontakt_do.php
kontakt_done.php
kontakt_err.php
Hier wird die Aufgabeverteilung wie folgt gestreut:
Darstellen des Formulars ohne Interaktion mit einem Backend wie Mailer oder Datenbank,
Empfang der Formulardaten via POST im [...]
URL Parameter
Böse Dinger sowas. Immer jeden erwarteten Wert auf eine Positivliste hin über einen Regulären Ausdruck hin prüfen. IDs dürfen also nur 0-9 enthalten usw.
Session Werte
Daten einer Sitzung gehören auf den Server und niemals in hidden Fields im HTML. Dort gehört höchstens die SitzungsID hinein, falls keine Cookies gehen oder so.
Mail Formulare
Die Ziel eMail niemals im Formular mitgeben. Sonst kann Spam verschickt werden. Der Empfänger muß erst im Server generiert werden.
XSS vermeiden
Am besten niemals JavaScript in Nutzereingaben zulassen. CrossSideScripting ist sonst fast unvermeidbar. Also kein HTML in Textblöcken, sondern eine eigene Formatierung wie BBCode oder Wiki einführen.
Kommentar Spam, Botvermeidung
Wenn der Nutzer was eingeben darf, dann nur angemeldet, oder nach einer CAPCHA (Bild mit Anweisung).
Anmeldefehler vertuschen
Keine Unterscheidung erlauben zwischen falschem User und falschem Passwort. Das kann intern gelogged werden, darf aber dem potentiellen Angreifer nicht sichtbar gemacht werden.
Registrierung mit optIn
Eine Anmeldung sollte via eMail und link darin innerhalb einer kurzen Zeit bestätigt werden müssen. Erst danach gilt der User als registriert. -> Botanmeldungen vermeiden/behindern.
| M | D | M | D | F | S | S |
|---|---|---|---|---|---|---|
| « Apr | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | |||
Recent Entries
Recent Comments
- Keine Kommentare vorhanden.
