Sicherheit erhöhen: Download sensibler Daten

Sensible Daten, wie z.B. Protokolle, Newsletter Empfängerdateien, etc. vor Fremdzugriff sicher auf dem Webserver ablegen.

Beim Ablegen sensibler Daten auf dem Webserver sollten Sie den Schutz dieser Daten im Fokus haben, damit diese Daten vor unberechtigtem Zugriff geschützt sind.

Auf Apache Webservern ist die erste Wahl der Einsatz einer .htaccess Datei, welche standardmässig auf den meisten Apache Webserver unterstützt wird. Dabei können Sie rein auf Bordmittel der Apache-Module zurückgreifen oder auch zusätzlich eigene Skripte bei der Umsetzung nutzen.

Umsetzung 1: Authentifizierung und Autorisierung mit Apache-Mitteln

Eine Möglichkeit hierzu ist der Einsatz einer .htaccess Datei, welche standardmässig auf den meisten Apache Webserver unterstützt wird.

Der Inhalt eines Verzeichnisses lässt sich über die Apache Bordmittel auf unterschiedliche Weise schützen (Verzeichnisschutz mit Passwortabfrage, Freigabe nur für bestimmte Benutzer bzw. IP-Adressen, etc.).

Nachfolgend ein Beispiel für die Zugriffskontrolle eines Verzeichnisses mit Erlaubnis nur bestimmter IP-Adressen.

Beispiel U1.1: .htaccess Datei innerhalb eines Verzeichnisses (z.B. /de/intern/.htaccess) - Authentifizierung und Autorisierung mit Apache-Mitteln

<IfModule mod_authz_core.c>
  #Apache 2.4
  <Files *>
    <RequireAll>
      Require all denied
    </RequireAll>
    <RequireAny>
      # nur folgende IP-Adressen erlaubt:
      Require ip 123.456.78.9
    </RequireAny>
  </Files>
  Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
  #Apache 2.2
  Order deny,allow
  deny from all
  # nur folgende IP-Adressen erlaubt:
  allow from 123.456.78.9
</IfModule>

# Hinweis:
# Wenn sichergestellt, ist, daß bei z.B. Einsatz eines Apache 2.4 die "neue" Definition funktioniert und das Modul
# vorhanden ist, kann auf die IfModule Abfrage verzichtet werden und direkt die Require-Definition angegeben werden!

Bedenken Sie, daß IP-Schutz über .htaccess keine hundertprozentig sichere Lösung ist (Stichwort IP-Spoofing, etc.). Als Beispiel sei genannt, daß je nach Proxy-Umgebung ggf. alle Anfragen über eine spezielle IP-Adresse an den Webserver kommen und erst vom Proxy weitergeleitet werden. So erlangen alle, die über diese IP-Adresse kommen, Zugriff.
Kombinieren Sie am besten mehrere Umsetzungsmöglichkeiten (IP-Beschränkung, Passwortabfrage, Berechtigungsprüfung über Skript, etc.), um eine bestmögliche Sicherheit für die vertraulichen Daten zu erlangen.

Tipp:
Den Verzeichnisschutz können Sie auch über eine Weblication® PHP-Frameworkfunktion setzen (wRepository::protectDir), siehe weiterführende Links unten.

Beachten Sie weiterhin die allgemeinen Hinweise am Ende des Artikels!

Umsetzung 2: Personalisierung über Weblication®

Weblication® CMS bietet Ihnen mit der Personalisierung ein weiteres Mittel, um vertrauliche Daten bestmöglichst zu schützen. Auch diese Umsetzung nutzt eine .htaccess Datei, welche allerdings Umschreibregeln nutzt, um den Abruf der Dateien über ein Skript (z.B. accessDocument.php) auf entsprechende Berechtigung zu prüfen. mod_rewrite muß vom Server unterstützt werden!
Ein Herunterladen kann so einem Pflegebenutzer über den Dateiexplorer durch Rechtsklick auf z.B. eine CSV-Datei (Auswahl: Herunterladen) ermöglicht werden.

Dies ermöglicht die Anzeige und das Herunterladen von Dateien für eingeloggte Weblication® Benutzer, welche über die Personalisierungseinstellungen ein Ansichtsrecht erhalten. Um den Aufruf von sensiblen Dateien über die accessDocument.php zu leiten, setzen Sie das wie folgt in der .htaccess Datei:

Beispiel U2.1: .htaccess Datei innerhalb eines Verzeichnisses (z.B. /de/intern/.htaccess - Personalisierung über Weblication®

RewriteEngine on

#forceDownload aktivieren, um Dateien beim Aufruf zum Speichern anzubieten:
RewriteRule (.*) /[IHR-LAYOUT-PROJEKT]/wGlobal/scripts/accessDocument.php?document=/de/intern/$1&display=1&forceDownload=0&%{QUERY_STRING} [L]

# Pfade an Ihre Projektpfade anpassen!

Wenn noch keine Personalisierung für das Verzeichnis bzw. die Dateien gesetzt ist, können erstmal alle Benutzer und Seitenbesucher die Dateien direkt aufrufen.
Den Schutz akivieren Sie durch Setzen der Personalisierung über die Datei-Eigenschaften (Personalisierung), was Ihnen mit dem Weblication® Zusatzmodul Personalisierung zur Verfügung steht. Hinterlegen Sie über die Maske die Benutzer bzw. Gruppen, auf welche das Ansichtsrecht auf die Datei(en) beschränkt werden soll.
Ohne Zusatzmodul können Sie dies übrigens auch vornehmen, was dann manuell im Quelltext der Dokumentenerweiterung erfolgen muss (siehe nachfolgendes Beispiel).

Beispiel U2.2: Auszug aus der Standard-Dateieinstellung (wdExtension.php) des Verzeichnisses

...
  <wd:personalization>
    <wd:group name="chiefeditorship"/>
  </wd:personalization>
...

Wichtige Hinweise

Die im Artikel genannten Möglichkeiten sind Beispiele für die Umsetzung eines bestmöglichen Schutzes Ihrer Daten und beziehen sich rein auf den HTTP-Aufruf. Zugriffe auf anderem Wege (FTP, sFTP, SSH, bzw. sonstige Zugriffe über das Betriebssystem) sollten gerade bei sensiblen und vertraulichen Daten ebenso bedacht werden!

Ein hundertprozentiger Schutz kann nicht gewährleistet werden, weshalb Sie selber abwägen müssen, welche Daten Sie auf einem Webserver ablegen und wie Sie diese schützen!