diff --git a/fhem/FHEM/01_FHEMWEB.pm b/fhem/FHEM/01_FHEMWEB.pm index 556d73939..3abaab178 100755 --- a/fhem/FHEM/01_FHEMWEB.pm +++ b/fhem/FHEM/01_FHEMWEB.pm @@ -264,6 +264,13 @@ FW_Define($$) exit(1); } + InternalTimer(1, sub(){ + if($featurelevel >= 5.8 && !AttrVal($name, "csrfToken", undef)) { + my ($x,$y) = gettimeofday(); + $hash->{CSRFTOKEN} = rand($y)*rand($x); + } + }, $hash, 0); + return $ret; } @@ -2300,7 +2307,12 @@ FW_Attr(@) my ($x,$y) = gettimeofday(); $csrf = rand($y)*rand($x); } - $hash->{CSRFTOKEN} = $csrf; + + if($csrf eq "none") { + delete($hash->{CSRFTOKEN}); + } else { + $hash->{CSRFTOKEN} = $csrf; + } } if($attrName eq "csrfToken" && $type eq "del") { @@ -3057,11 +3069,12 @@ FW_widgetOverride($$)
  • csrfToken
    - If set, FHEMWEB requires the value of this attribute as fwcsrf - Parameter for each command. If the value is random, then a random - number will be generated on each FHEMWEB start. It is used as - countermeasure for Cross Site Resource Forgery attacks. - Default is not active. + If set, FHEMWEB requires the value of this attribute as fwcsrf Parameter + for each command. It is used as countermeasure for Cross Site Resource + Forgery attacks. If the value is random, then a random number will be + generated on each FHEMWEB start. If it is set to none, no token is + expected. Default is random for featurelevel 5.8 and greater, and none + for featurelevel below 5.8

  • @@ -3767,11 +3780,12 @@ FW_widgetOverride($$)
  • csrfToken
    Falls gesetzt, wird der Wert des Attributes als fwcsrf Parameter bei - jedem ueber FHEMWEB abgesetzten Kommando verlangt. Falls der Wert - random ist, dann wird ein Zufallswert beim jeden FHEMWEB Start neu - generiert. - Es dient zum Schutz von Cross Site Resource Forgery Angriffen. - Default ist leer, also nicht aktiv. + jedem über FHEMWEB abgesetzten Kommando verlangt, es dient zum + Schutz von Cross Site Resource Forgery Angriffen. + Falls der Wert random ist, dann wird ein Zufallswert beim jeden FHEMWEB + Start neu generiert, falls er none ist, dann wird kein Parameter + verlangt. Default ist random für featurelevel 5.8 und + größer, und none für featurelevel kleiner 5.8

  • @@ -4237,7 +4251,7 @@ FW_widgetOverride($$)
  • widgetOverride
    Leerzeichen separierte Liste von Name/Modifier Paaren, mit dem man den - vom Modulautor fuer einen bestimmten Parameter (Set/Get/Attribut) + vom Modulautor für einen bestimmten Parameter (Set/Get/Attribut) vorgesehene Widgets ändern kann.