2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-19 12:46:03 +00:00

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
This commit is contained in:
rudolfkoenig 2016-05-29 09:52:46 +00:00
parent ff4a2d7286
commit 98dbbd1fa4

View File

@ -264,6 +264,13 @@ FW_Define($$)
exit(1); 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; return $ret;
} }
@ -2300,8 +2307,13 @@ FW_Attr(@)
my ($x,$y) = gettimeofday(); my ($x,$y) = gettimeofday();
$csrf = rand($y)*rand($x); $csrf = rand($y)*rand($x);
} }
if($csrf eq "none") {
delete($hash->{CSRFTOKEN});
} else {
$hash->{CSRFTOKEN} = $csrf; $hash->{CSRFTOKEN} = $csrf;
} }
}
if($attrName eq "csrfToken" && $type eq "del") { if($attrName eq "csrfToken" && $type eq "del") {
delete($hash->{CSRFTOKEN}); delete($hash->{CSRFTOKEN});
@ -3057,11 +3069,12 @@ FW_widgetOverride($$)
<a name="csrfToken"></a> <a name="csrfToken"></a>
<li>csrfToken<br> <li>csrfToken<br>
If set, FHEMWEB requires the value of this attribute as fwcsrf If set, FHEMWEB requires the value of this attribute as fwcsrf Parameter
Parameter for each command. If the value is random, then a random for each command. It is used as countermeasure for Cross Site Resource
number will be generated on each FHEMWEB start. It is used as Forgery attacks. If the value is random, then a random number will be
countermeasure for Cross Site Resource Forgery attacks. generated on each FHEMWEB start. If it is set to none, no token is
Default is not active. expected. Default is random for featurelevel 5.8 and greater, and none
for featurelevel below 5.8
</li><br> </li><br>
<a name="CssFiles"></a> <a name="CssFiles"></a>
@ -3767,11 +3780,12 @@ FW_widgetOverride($$)
<a name="csrfToken"></a> <a name="csrfToken"></a>
<li>csrfToken<br> <li>csrfToken<br>
Falls gesetzt, wird der Wert des Attributes als fwcsrf Parameter bei Falls gesetzt, wird der Wert des Attributes als fwcsrf Parameter bei
jedem ueber FHEMWEB abgesetzten Kommando verlangt. Falls der Wert jedem &uuml;ber FHEMWEB abgesetzten Kommando verlangt, es dient zum
random ist, dann wird ein Zufallswert beim jeden FHEMWEB Start neu Schutz von Cross Site Resource Forgery Angriffen.
generiert. Falls der Wert random ist, dann wird ein Zufallswert beim jeden FHEMWEB
Es dient zum Schutz von Cross Site Resource Forgery Angriffen. Start neu generiert, falls er none ist, dann wird kein Parameter
Default ist leer, also nicht aktiv. verlangt. Default ist random f&uuml;r featurelevel 5.8 und
gr&ouml;&szlig;er, und none f&uuml;r featurelevel kleiner 5.8
</li><br> </li><br>
<a name="CssFiles"></a> <a name="CssFiles"></a>
@ -4237,7 +4251,7 @@ FW_widgetOverride($$)
<a name="widgetOverride"></a> <a name="widgetOverride"></a>
<li>widgetOverride<br> <li>widgetOverride<br>
Leerzeichen separierte Liste von Name/Modifier Paaren, mit dem man den Leerzeichen separierte Liste von Name/Modifier Paaren, mit dem man den
vom Modulautor fuer einen bestimmten Parameter (Set/Get/Attribut) vom Modulautor f&uuml;r einen bestimmten Parameter (Set/Get/Attribut)
vorgesehene Widgets &auml;ndern kann. vorgesehene Widgets &auml;ndern kann.
<ul> <ul>
<li>Ist der Modifier ":noArg", wird kein weiteres Eingabefeld <li>Ist der Modifier ":noArg", wird kein weiteres Eingabefeld