[vz-dev] Symfony in action - nur für Programmierer

Andreas Goetz cpuidle at gmail.com
Mon Dec 19 22:31:43 CET 2016


Hallo Zusammen,

ich habe mal einen kleinen Exkurs in Symfony für Euch. Es gab mal eine kurze Diskussion warum Frameworks die Welt (mit ihren Bugs) immer so kompliziert machen. Hier ein Beispiel wo das Gegenteil der Fall ist.

Szenario: mein VZ hängt im Internet und ist per U/P mittel Token Authentication gegen unbefugte Nutzung gesichert. Zugriffe aus dem lokalen Netz sind ohne Passwort möglich. Zwischen Raspi und Internet hängt noch ein Proxy.

Problem: für den eigentlichen Server kommen dann _alle_ Zugriffe aus dem lokalen Netz- also vom Proxy und damit ohne Usernamen und Passwort. Super Einfallstor trotz Absicherungsmaßnahme. Bin grad bei der Umstellung meines Setups drauf reingefallen.

Symfony to the rescue! So sieht die Lösung in der Router.php mittels Symfony aus:


		// make sure proxy ip in trusted local network isn't mistaken for client ip
		$request->setTrustedProxies($proxies = Util\Configuration::read('proxies', []));
		
		if (count($proxies) == 0 || !$request->isFromTrustedProxy()) {
			// ensure no proxy header present if proxy not used
			foreach ([Request::HEADER_FORWARDED, Request::HEADER_CLIENT_IP] as $header) {
				if (null !== $request->headers->get($header)) {
					throw new \Exception('Invalid proxy access');
				}
			}
		}

…also wenn ein Proxy konfiguriert ist dann kann der Request nur von diesem kommen falls Proxy Header gesetzt sind oder es wird sichergestellt dass der Request keine Proxy Header enthält.

Damit sollte das Szenario entweder sicher sein oder durch Konfigurationsfehler auffallen.

Uninteressant? Dann einfach löschen- ich fands einfach nett wie schnell sich mit ein paar Bibliotheksfunktionen eine halbwegs einfache Lösung für ein relativ komplexes Problem finden ließ.

In diesem Sinne schonmal eine schöne Weihnachtszeit, Frohes Fest uns schöne Bescherung!

Viele Grüße, Andreas





More information about the volkszaehler-dev mailing list