Sicherheit eines MOD / striptags & stripthtml

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
tiefenschaum
Mitglied
Beiträge: 17
Registriert: 29.05.2003 23:36
Wohnort: Tiefen des Internet
Kontaktdaten:

Sicherheit eines MOD / striptags & stripthtml

Beitrag von tiefenschaum »

Ich bin dabei ein MOD zu schreiben, und bin mir mit der Sicherheit nicht im klaren.
Das MOD erlaubt es registrierten usern Text, Integer, Links und eine Grafik (GIF mit content check) upzuloaden, bzw in die Datenbank zu schreiben. Das Ganze soll natürlich nachher auch wieder angezeigt werden können.
Ich frage mich halt nur, da wenn man den Forums-source so ansieht, sehr oft aus Sicherheitsgründen HTML Anteile herausgefiltert werden. Das selbe mit Slashes.
Meine Frage also, wo (bei welchen Eingaben) und wann (vor eintrag in die DB oder vor der Anzeige) sollte man welche Zeichen aus den jeweiligen Variablen "rausfiltern", damit niemand unsinn betreibt?

btw mit der Forums Suche habe ich nichs gefunden, falls das Thema schonmal zu Sprache kam ...
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

phpBB liefert dir die Variablen immer mit escapten AnführungszeichenZum Speichern musst du die escapten Anführungszeichen durch doppelte ersetzen:

Code: Alles auswählen

str_replace("\'", "''", $var)
Willst du die Werte intern weiterverarbeiten, so musst du das Escapen rückgängig machen:

Code: Alles auswählen

stripslashes($var)
Ansonsten solltest du (idealerweise gleich bei der Speicherung) darauf achten, das bei Textfeldern keine HTML-Befehle enthalten sind. Das geht entweder mit

Code: Alles auswählen

strip_tags($var)
(da werden die Tags einfach entfernt)
oder mit

Code: Alles auswählen

htmlspecialchars($var)
(da werden die Tags als Text dargestellt).
Zusätzlich solltest du bei Zahlenwerten sicherstellen, dass auch eine Zahl vorliegt:

Code: Alles auswählen

intval($value)
Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Antworten

Zurück zu „phpBB 2.0: Mod Support“