sebadorn.de

Improvements after Mozilla’s Observatory results

Mozilla made their Observatory service public, which lets you check the security of sites. A first run resulted in an F for sebadorn.de. Following some of the sug­gestions I could improve that to a B-.

1. Redirect HTTP to HTTPS

Thanks to Let’s Encrypt I already offered HTTPS, but I didn't enforce it. Now visitors to http://sebadorn.de are redirected to https://sebadorn.de. I did so by adding the following rule to my .htaccess file:

<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteCond %{HTTP_HOST} ^sebadorn\.de [NC]
	RewriteCond %{SERVER_PORT} 80
	RewriteRule ^(.*)$ https://sebadorn.de/$1 [R,L]
</IfModule>

2. Add some more headers

<IfModule mod_headers.c>
	Header always edit Set-Cookie (.*) "$1; HttpOnly; Secure"
	Header set Content-Security-Policy "frame-ancestors 'self'"
	Header set X-Content-Type-Options "nosniff"
	Header set X-Frame-Options "SAMEORIGIN"
	Header set X-XSS-Protection "1; mode=block"
</IfModule>
Set-Cookie
Cookies about to be set received additional directives: HttpOnly and Secure. HttpOnly disallows cookies being read by JavaScript and Secure enforces an HTTPS connection. (Source)
X-Content-Type-Options
Setting this header to nosniff tells browsers not to try and guess the MIME type of contents, which potentially prevents XSS attacks. (Source)
X-Frame-Options
Setting this header to SAMEORIGIN or DENY prevents other pages from displaying the site in a frame which prevents clickjacking. (Source)
X-XSS-Protection
Setting this header to 1; mode=block tells browsers to try and detect XSS attacks and in this case stop loading the page. (Source)

XAMPP 1.7.0 Troubleshooting

Es war mir klar, dass ich nicht „mal eben“ die neue XAMPP Version 1.7.0 installieren und meine alte Datenbank und htdocs übernehmen kann. Aber die Lösungen sind gefunden (keine Probleme gelöst, sondern Lösungen gefunden – so sagt man das heutzutage, habe ich gehört) und es läuft wieder alles rund. Eine kleine Hilfeliste:

Vorbeugen

Nicht einfach mit dem Installer die neue Version drüberbügeln! Erst die alte Version deinstallieren. Und keine Sorge, dabei werdet ihr gefragt, ob die MySQL-Datenbanken und das Verzeichnis htdocs ebenfalls gelöscht werden sollen. Was ihr vermutlich nicht wollt.

Und Vista-User müssen entweder die Benutzerkontensteuerung deaktivieren oder in ein anderes Verzeichnis als C:/Program Files/ installieren.

Fehlerbeschreibung selbst nachschauen

Die meisten Fehler werden in ein log geschrieben, das ihr unter xampp/apache/logs/error.log findet.

Und überhaupt: Lest Fehlermeldungen aufmerksam durch. Da steht mehr drin als nur „arschgeleckt“, denn die Leute, die die geschrieben haben, wollen euch helfen! Wirklich.

Error 500 von localhost/xampp/

Prägt euch das ein: Wenn es heißt „Error 500“ ist euer Feind höchstwahrscheinlich eine .htaccess-Datei. Mit dem Entfernen der Datei unter xampp/htdocs/xampp/.htaccess ließ es sich auch beheben.

Die Ursache bei mir: Das Verzeichnis der neuen XAMPP-Installation hieß anders. Nach dem Verschieben des gesamten htdocs-Ordners (ein Fehler), wurde auch die alte .htaccess übernommen, in der ein falscher Pfad stand. Und Pa-Peng-500!

Sicherheitscheck nicht aufrufbar

Das Problem haben offensichtlich alle Vista-User. Endlich haben wir es ins XAMPP-Web-Interface geschafft und nun das – Der Sicherheitscheck lässt sich nicht öffnen. Stattdessen grinst uns folgende Meldung an:

Zugriff verweigert!

Der Zugriff auf das angeforderte Objekt ist nicht möglich. Entweder kann es vom Server nicht gelesen werden oder es ist zugriffsgeschützt.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
Error 403
localhost

Dieser Fehler ist neu mit der Version 1.7.0. Aber im Apache Friends Forum wurde bereits Abhilfe gefunden.

Öffnet die Datei xampp/apache/conf/extra/httpd-xampp.conf und ersetzt im dritten Absatz das Wort „localhost“ mit „127.0.0.1“. Der Abschnitt sieht hinterher so aus:

    Alias /security "C:/xampp/security/htdocs/"
    <Directory "C:/xampp/security/htdocs">
      <IfModule php5_module>
         <Files "xamppsecurity.php">
            php_admin_flag safe_mode off
         </Files>
      </IfModule>
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Directory>

phpMyAdmin ohne MySQL-Verbindung

Die Fehlermeldung lautet:

MySQL meldet:

Die Verbindung konnte aufgrund von ungültigen Einstellungen nicht hergestellt werden.

phpMyAdmin hat versucht eine Verbindung zum MySQL-Server aufzubauen, jedoch hat dieser die Verbindung zurückgewiesen. Sie sollten Ihre Einstellungen für Host, Benutzername und Passwort in Ihrer config.inc.php überprüfen und sich vergewissern, dass diese den Informationen, welche Sie vom Administrator erhalten haben, entsprechen.

Dann schaut nach, ob die Zugangsdaten korrekt eingetragen sind. In der Datei xampp/phpmyadmin/config.inc.php steht folgender Eintrag:

/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['AllowNoPasswordRoot'] = true;

Möglicherweise habt ihr ja, nachdem der Sicherheitscheck funktioniert, das Passwort geändert, dieses wurde aber nicht hier eingetragen. Nachholen!

XAMPP-Neustart

Manche Änderungen werden erst nach einem Neustart des Servers aktiv. Also XAMPP stoppen und anschließend XAMPP starten. Klappt es jetzt?

Bluescreen

Ein Klassiker zum Schluss, der mich lange in den Wahnsinn trieb, weil ich die Ursache nicht kannte. Tatsächlich war an allen Bluescreens XAMPP schuld. Jawoll, so war es! Und ich schreibe explizit „Bluescreen“, weil es eben nur unter Windows auftritt. Verursacht durch das XAMPP Control Panel.

Die Lösung ist simpel: Benutzt das Control Panel einfach nicht. Stattdessen legt euch Verknüpfungen folgender Dateien an und nutzt diese zum Starten und Beenden:

  • XAMPP starten (PHP+MySQL): xampp/xampp_start.exe
  • XAMPP beenden (PHP+MySQL): xampp/xampp_stop.exe

Vielleicht ist das Problem mit der Version 1.7.0 behoben. Vielleicht.