FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: justme1968 am 25 Mai 2017, 18:18:43

Titel: fhemweb HEAD request erlauben
Beitrag von: justme1968 am 25 Mai 2017, 18:18:43
wenn man im tablet ui mit iframe eine externe seite einbindet macht das iframe widget einen HEAD request um die erreichbarkeit der seite zu prüfen.

wenn man die eingebettete seite über fhemweb ausliefert bekommt man nur einen 405 fehler da HEAD nicht erlaubt ist.

mit der folgenden änderungIndex: 01_FHEMWEB.pm
===================================================================
--- 01_FHEMWEB.pm (revision 14370)
+++ 01_FHEMWEB.pm (working copy)
@@ -433,7 +433,7 @@
   my ($method, $arg, $httpvers) = split(" ", $FW_httpheader[0], 3)
         if($FW_httpheader[0]);
   $method = "" if(!$method);
-  if($method !~ m/^(GET|POST)$/i){
+  if($method !~ m/^(GET|POST|HEAD)$/i){
     my $retCode = ($method eq "OPTIONS") ? "200 OK" : "405 Method Not Allowed";
     TcpServer_WriteBlocking($FW_chash,
       "HTTP/1.1 $retCode\r\n" .
wird HEAD erlaubt und das iframe widget funktioniert.

das ganze ist natürlich nicht wirklich korrekt und vollständig, reicht aber für diesen anwendungsfall.

ich bin mir auch nicht sicher ob es eventuell irgendwelche sicherheitsrelevanten seiteneffekte hat.

falls das jemand verneinen kann wäre es schön wenn die änderung eingecheckt wird.
Titel: Antw:fhemweb HEAD request erlauben
Beitrag von: rudolfkoenig am 26 Mai 2017, 08:20:49
Auf HEAD muss man mit den korrekten Header-Daten, aber ohne Inhalt antworten, mit diesem Patch wird aber der Inhalt auch gesendet. Ich kann den Patch einbauen, aber ich erwarte in ca 2-4 Wochen die ersten Fehlermeldungen, die vermutlich von der Beschreibung nicht ganz trivial auf diese Aenderung zurueckzufuehren sind. Gibt es noch andere Meinungen?


Zitatmacht das iframe widget einen HEAD request
Ich verstehe das so: bei einem <iframe> Tag fuehrt Safari auf dem iPad ein HEAD aus.
Nur aus Neugier: Wozu eigentlich? die Daten muessen normalerweise dargestellt werden, dann kann man gleich ein GET absetzen.
Titel: fhemweb HEAD request erlauben
Beitrag von: justme1968 am 26 Mai 2017, 12:22:48
ja. das normalerweise nur der header kommen sollte ist klar. die frage ist ob es falsch ist das der rest auch kommt oder würde der standard das sogar her geben.

der head request ist eine besonderheit des tablet ui iframe widget. das wird gemacht um ein fehler icon anzuzeigen statt einer fehlerhaften webseite wenn das einbetten nicht funktioniert. das ganze ist also tablet ui spezifisch.
Titel: Antw:fhemweb HEAD request erlauben
Beitrag von: rudolfkoenig am 26 Mai 2017, 12:26:36
Da FHEMWEB die Seite auch bei HEAD mit Inhalt zurueckliefern wuerde: kann Tablet-UI nicht gleich ein GET absetzen?