Check whether WCFSetup is accessed using HTTPS
authorTim Düsterhus <duesterhus@woltlab.com>
Wed, 22 Sep 2021 13:08:47 +0000 (15:08 +0200)
committerTim Düsterhus <duesterhus@woltlab.com>
Wed, 22 Sep 2021 13:08:47 +0000 (15:08 +0200)
Resolves #4502

wcfsetup/install/files/lib/system/WCFSetup.class.php
wcfsetup/setup/lang/setup_de.xml
wcfsetup/setup/lang/setup_en.xml
wcfsetup/setup/template/stepShowSystemRequirements.tpl

index f8b2525c25a4b5b90cc87cb819f8a6217d2f00c9..3135a1e9032cfeabdf09cf29f24e5e21f8c0689f 100644 (file)
@@ -436,6 +436,8 @@ class WCFSetup extends WCF
 
         $system['cookie']['result'] = !empty($_COOKIE['wcfsetup_cookietest']) && $_COOKIE['wcfsetup_cookietest'] == TMP_FILE_PREFIX;
 
+        $system['tls']['result'] = RouteHandler::secureConnection() || $system['hostname']['value'] == 'localhost';
+
         foreach ($system as $result) {
             if (!$result['result']) {
                 WCF::getTPL()->assign([
index 4f7d9822fb6764fbb8081a83c24bbf956a57a849..1e36745109e46c3dee1a6e80a3cc39674ded88f7 100644 (file)
@@ -48,6 +48,8 @@
                <item name="wcf.global.systemRequirements.hostname.description"><![CDATA[Der vom Webserver ermittelte Hostname muss dem Hostnamen in der Adressleiste des Webbrowsers entsprechen.]]></item>
                <item name="wcf.global.systemRequirements.cookie"><![CDATA[Cookies]]></item>
                <item name="wcf.global.systemRequirements.cookie.description"><![CDATA[Gesetzte Cookies müssen vom Webbrowser zurück an den Server gesendet werden.]]></item>
+               <item name="wcf.global.systemRequirements.tls"><![CDATA[Verschlüsselte HTTPS-Verbindung (SSL/TLS)]]></item>
+               <item name="wcf.global.systemRequirements.tls.description"><![CDATA[Die Installation wird über eine unverschlüsselte HTTP-Verbindung aufgerufen. Aus Gründen des Datenschutzes sollte der Zugriff generell über eine verschlüsselte HTTPS-Verbindung erfolgen. Unverschlüsselte Anfragen sollten auf die verschlüsselte Version umgeleitet werden. Bei der Verwendung von unverschlüsselten Verbindungen kann es zu einer Einschränkung des Funktionsumfangs kommen, da Webbrowser bestimmte Funktionen lediglich zur Verwendung mit verschlüsselten Verbindungen zulassen.]]></item>
                <item name="wcf.global.next"><![CDATA[Lade nächsten Schritt …]]></item>
                <item name="wcf.global.next.description"><![CDATA[Die Installation lädt im Moment den nächsten Schritt. Bitte haben Sie einen Augenblick Geduld.]]></item>
                <item name="wcf.global.configureDB"><![CDATA[Datenbankzugang konfigurieren]]></item>
index c86df9de64b21ded0903063d882c3c722d4a8422..03a2775eaaee7c9cd692513bdab6683fa4228f78 100644 (file)
@@ -48,6 +48,8 @@
                <item name="wcf.global.systemRequirements.hostname.description"><![CDATA[The host name determined by the web server must match the host name within the web browser's URL bar.]]></item>
                <item name="wcf.global.systemRequirements.cookie"><![CDATA[Cookies]]></item>
                <item name="wcf.global.systemRequirements.cookie.description"><![CDATA[The web browser must send cookies back to the web server.]]></item>
+               <item name="wcf.global.systemRequirements.tls"><![CDATA[Encrypted HTTPS Connection (SSL/TLS)]]></item>
+               <item name="wcf.global.systemRequirements.tls.description"><![CDATA[The setup is accessed via an unencrypted HTTP connection. For privacy and security only encrypted HTTPS connections should be used. Unencrypted connections should be redirected to the encrypted variant. Some features might be unsupported when using unencrypted connections, as web browsers restrict some features for use with encrypted connections only.]]></item>
                <item name="wcf.global.next"><![CDATA[Loading next step …]]></item>
                <item name="wcf.global.next.description"><![CDATA[The installation is currently loading the next step, please wait.]]></item>
                <item name="wcf.global.configureDB"><![CDATA[Configure Database Access]]></item>
index 2a4235a56536c92eeb543c4a86c9769267efa43c..059e381f6d7fe90a620db372621afdf6d40bc7bb 100644 (file)
        <section class="section">
                <h2 class="sectionTitle">{lang}wcf.global.systemRequirements.recommended{/lang}</h2>
                
+               <section class="section">
+                       <h2 class="sectionTitle">{lang}wcf.global.systemRequirements.tls{/lang}</h2>
+                       
+                       <div class="row rowColGap formGrid">
+                               <dl class="col-xs-12 col-md-6">
+                                       <dt>{lang}wcf.global.systemRequirements.element.required{/lang}</dt>
+                                       <dd>{lang}wcf.global.systemRequirements.active{/lang}</dd>
+                               </dl>
+                               
+                               <dl class="col-xs-12 col-md-6">
+                                       <dt>{lang}wcf.global.systemRequirements.element.yours{/lang}</dt>
+                                       <dd>
+                                               <span class="badge {if !$system.tls.result}red{else}green{/if}">
+                                               {if !$system.tls.result}{lang}wcf.global.systemRequirements.notActive{/lang}{else}
+                                                       {lang}wcf.global.systemRequirements.active{/lang}
+                                               {/if}</span>
+                                               {if !$system.tls.result}<small>{lang}wcf.global.systemRequirements.tls.description{/lang}</small>{/if}
+                                       </dd>
+                               </dl>
+                       </div>
+               </section>
+               
                <section class="section">
                        <h2 class="sectionTitle">{lang}wcf.global.systemRequirements.uploadMaxFilesize{/lang}</h2>