phpbb3: Integration Webseite / Schutz vor URL Injection
Verfasst: 02.03.2009 20:09
Hi
hab fürs phpBB3 eine kleine Linkliste gebastelt. Da mein php eher rudimentär ist, ist das ganze vermutlich eher quick&dirty
Aufruf: linkliste.php (zugleich Hauptmenu)
Aufruf der Kategorien: linkliste.php?menupunkt=1
Aufruf weiterer Seiten einer Kategorie: linkliste.php?menupunkt=1&start=1
Für die Integration hab ich die Anleitung hier im Forum genommen. Für die Pagination hab ich ebenfalls die Forenfunktion genutzt.
Datenbankaufruf bzw. Kategorie-Ansteuerung mußte aber selber kreiiert werden - und hier möchte ich ein wenig Sicherheit reinbasteln. start wird sicher sein, da ich hier voll die paginationfunktion vom Forum nutze.
Werde ich daher wohl nicht weiter sichern müssen?
Meine erste Idee war mod_rewrite zu nutzen. Aus linkliste.php?menupunkt=1&start=1 wird Links_1-1.html ... per Mod_Rewrite kann ich ja sagen das 1-1 ausschließlich zahlen enthalten kann - sonst matched es nicht und es landet in einem 404. So hab ich das bei meiner Privaten Webseite auch gemacht
. Aber da ich beim phpBB3 auf "statische URLs"-SEO verzichten möchte, möchte ich die idee wieder verwerfen.
Da so jeder weiß wie die php-Seite heißt und was für Variablen wir hier haben, kann jetzt entsprechende Angriffschemata starten. Da "menupunkt" ausschließlich aus Zahlen bestehen kann, könnte ich hier ganz am Anfang folgendes abfragen:
Somit würde bei illegalen Aufruf mit was auch immer der Aufbau der Seite abgebrochen, da is_numeric keine Zahl enthält.
Leider greift dieser "Schutz" auch bei linkliste.php - also der Startseite
Keine Variable -> somit illegaler Aufruf 
Wie kann ich das umgehen bzw. richtig machen? Was sollte ich hier noch beachten?
Gibt es paar Methoden wie man seine Scripte testen kann? Vermutlich nicht? ... bzw. die wird mir natürlich keiner nennen, da man so ja direkt ne "waffe" in die Hand bekommt?
Gruß
hab fürs phpBB3 eine kleine Linkliste gebastelt. Da mein php eher rudimentär ist, ist das ganze vermutlich eher quick&dirty

Aufruf: linkliste.php (zugleich Hauptmenu)
Aufruf der Kategorien: linkliste.php?menupunkt=1
Aufruf weiterer Seiten einer Kategorie: linkliste.php?menupunkt=1&start=1
Für die Integration hab ich die Anleitung hier im Forum genommen. Für die Pagination hab ich ebenfalls die Forenfunktion genutzt.
Datenbankaufruf bzw. Kategorie-Ansteuerung mußte aber selber kreiiert werden - und hier möchte ich ein wenig Sicherheit reinbasteln. start wird sicher sein, da ich hier voll die paginationfunktion vom Forum nutze.
Code: Alles auswählen
// vorbereitung PAGINATION
$mode = request_var('menupunkt', '');
$params[] = "menupunkt=$mode";
$pagination_url = append_sid("{$phpbb_root_path}".$dateiname, implode('&', $params));
// vorbereitung PAGINATION _ ENDE
// erstellt Seitenzahlen
$template->assign_vars(array(
'PAGINATION' => generate_pagination($pagination_url, $Anzahl, $ErgebnisseProSeite, $start),
'PAGE_NUMBER' => on_page($Anzahl, $ErgebnisseProSeite, $start)
));
// erstellt Seitenzahlen - ENDE
Meine erste Idee war mod_rewrite zu nutzen. Aus linkliste.php?menupunkt=1&start=1 wird Links_1-1.html ... per Mod_Rewrite kann ich ja sagen das 1-1 ausschließlich zahlen enthalten kann - sonst matched es nicht und es landet in einem 404. So hab ich das bei meiner Privaten Webseite auch gemacht

Da so jeder weiß wie die php-Seite heißt und was für Variablen wir hier haben, kann jetzt entsprechende Angriffschemata starten. Da "menupunkt" ausschließlich aus Zahlen bestehen kann, könnte ich hier ganz am Anfang folgendes abfragen:
Code: Alles auswählen
if (is_numeric($_GET[menupunkt]))
{} else exit;
Leider greift dieser "Schutz" auch bei linkliste.php - also der Startseite


Wie kann ich das umgehen bzw. richtig machen? Was sollte ich hier noch beachten?
Gibt es paar Methoden wie man seine Scripte testen kann? Vermutlich nicht? ... bzw. die wird mir natürlich keiner nennen, da man so ja direkt ne "waffe" in die Hand bekommt?

Gruß