Bug #76347
closedClarify description of [*][cookieSecure] and [BE][fileDenyPattern]
0%
Description
Original (German) description¶
Die Beschreibung für die Konfiguration von [SYS][cookieSecure] ist nicht eindeutig und verständlich genug um eine sichere Konfiguration vornehmen zu können.
Integer (0, 1, 2): Indicates that the cookie should only be transmitted over a secure HTTPS connection from the client.
0 always send cookie
1 (force HTTPS) the cookie will only be set if a secure (HTTPS) connection exists - use this in combination with lockSSL since otherwise the application will fail and throw an exception
2 the cookie will be set in each case, but uses the secure flag if a secure (HTTPS) connection exists.
Betrachtet man den Code hinter dieser Konfiguration ergibt sich folgende Interpretation des Parameters [SYS][cookieSecure]:
[SYS][cookieSecure]
HTTP-Verbindung
HTTPS-Verbindung
0
Cookie wird ohne secure gesetzt
Cookie wird ohne secure gesetzt
1
Es wird kein Cookie gesetzt
Cookie wird mit secure gesetzt
2
Cookie wird ohne secure gesetzt
Cookie wird mit secure gesetzt
Die sicherste Konfiguration wäre also [SYS][cookieSecure] = 1
Hierdurch wird auch sichergestellt, dass das Cookie bei einer HTTP-Verbindung erst gar nicht zum Benutzer gesendet wird.
PHP-Code:
typo3/sysext/core/Classes/Authentication/AbstractUserAuthentication.php
$cookieSecure = (bool)$settings['cookieSecure'] && GeneralUtility::getIndpEnv('TYPO3_SSL'); // Deliver cookies only via HTTP and prevent possible XSS by JavaScript: $cookieHttpOnly = (bool)$settings['cookieHttpOnly']; // Do not set cookie if cookieSecure is set to "1" (force HTTPS) and no secure channel is used: if ((int)$settings['cookieSecure'] !== 1 || GeneralUtility::getIndpEnv('TYPO3_SSL')) { setcookie($this->name, $this->id, $cookieExpire, $cookiePath, $cookieDomain, $cookieSecure, $cookieHttpOnly); $this->cookieWasSetOnCurrentRequest = true; } else {
Risikofaktor: Leicht
Maßnahme:
Es sollte in der Beschreibung zu dieser Konfiguration klarer herausgestellt werden, welche Unterschiede bestehen und welche Einstellung welches Sicherheitsniveau aufweist.
Ungenaue Beschreibung für [BE][fileDenyPattern]
Betroffenes Modul: Typo3 Core
Beschreibung:
Die Konfiguration [BE][fileDenyPattern] ist mit folgendem Text beschrieben:
A perl-compatible regular expression (without delimiters!) that - if it matches a filename - will deny the file upload/rename or whatever in the webspace. For security reasons, files with multiple extensions have to be denied on an Apache environment with mod_alias, if the filename contains a valid php handler in an arbitrary position. Also, ".htaccess" files have to be denied. Matching is done case-insensitive. Default value is stored in constant FILE_DENY_PATTERN_DEFAULT
Diese Beschreibung ist zu ungenau und erweckt falsche Eindrücke der Sicherheit. Man könnte annehmen, dass es generell nicht möglich ist Dateien hochzuladen, die diesem Pattern entsprechen. Allerdings ist es einem Administrator generell erlaubt alle Dateien hochzuladen (siehe 6.1.2.2). Zudem bleibt offen, dass Upload-Funktionen von Extensions nicht dieser Regel unterliegen außer sie implementieren Sie explizit.
Der Satz "For security reasons, files with multiple extensions have to be denied on an Apache environment with mod_alias, if the filename contains a valid php handler in an arbitrary position." kann nicht eindeutig interpretiert werden. Konkrete Handlungsanweisungen sollten hier beschreiben werden, welche Einstellung im Apache vorgenommen werden sollten.
Risikofaktor: Leicht
Maßnahme:
Die Beschreibung des Parameters sollte hinsichtlich einer klaren Abgrenzung und höherem Verständnis angepasst werden.