Während es für Außenstehende nicht möglich sein sollte, direkt auf den Server zuzugreifen (sofern Sie keine Ports des Routers weiterleiten), sind Sie anfällig für eine Art Cross-Site-Anforderungsfälschung . Wenn Ihnen beispielsweise eine E-Mail-Nachricht im HTML-Format gesendet wird (oder Sie eine Webseite laden oder ...) und ein Inline-Bild von dort geladen wird http://192.168.1.50/control?outlet=all&action=off
(oder wie auch immer seine IP-Adresse und -Syntax lautet), wird Ihr E-Mail-Client dies tun Versuchen Sie, ein Bild von dieser URL zu laden, und Ihre Verkaufsstellen werden ausgeschaltet (oder was auch immer).
Wenn Sie also genügend geeky Freunde haben, die Ihre Netzwerkeinrichtung kennen, sollten Sie davon ausgehen, dass Sie Streiche spielen. Tatsächlich sollten Sie auch zufällige XSRF-Treffer erwarten, die versuchen, andere Geräte zu nutzen, die Sie möglicherweise nicht haben. Wenn der Webserver des Controllers durch einen dieser Server verwirrt wird, kann er versehentlich beschädigt werden.
[Update] Um dies besser zu gewährleisten, hängt es stark von den Krypto-Funktionen des Webservers ab. Ich habe bei einer Schnellsuche nicht viele Informationen gesehen, daher bin ich mir nicht sicher, was er tun kann. Am einfachsten ist es, der Anfrage eine Kennwortvariable hinzuzufügen. Dies ist nicht besonders sicher, da es auf dem Draht sichtbar ist, im Protokoll auf dem Client gespeichert und auf dem Server usw. protokolliert wird, aber es ist besser als nichts (und besser als die Verwendung einer eigenartigen Syntax, da es leicht zu ändern ist). . Verwenden Sie nicht dasselbe Passwort, das Sie für andere Zwecke verwenden.
Ein Wechsel von GET zu POST würde auch ein bisschen helfen, zumal der HTTP-Standard besagt, dass GET-Anforderungen den Status des Servers nicht ändern sollen, dh es ist sicher, dass Clients GET-Anforderungen nicht senden können abhängig von zB dem Zustand ihrer Caches. Die Verwendung von HTTPS würde noch mehr helfen (sofern der Server dies unterstützt). Die Verwendung der WebDAV-Digest-Authentifizierung (anstelle einer Kennwortzeichenfolge) wäre ebenfalls gut (wiederum, wenn der Server dies unterstützt), aber Sie müssen einen gewissen Schutz vor Wiederholungsangriffen hinzufügen, damit er wirklich effektiv ist.