From 1a57238af5e22b1b701dfe3e49c1a13e18ae6877 Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Sun, 29 May 2016 09:52:46 +0000 Subject: [PATCH] 01_FHEMWEB.pm: csrfToken active from featurelevel 5.8 (Forum #53847) git-svn-id: https://svn.fhem.de/fhem/trunk@11546 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/01_FHEMWEB.pm | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) 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.