Skip to main content

 

Sicherheit

 

Webseiten sind das Ziel von Hacker-Angriffen, d.h. nicht nur von pubertierenden Script-Kiddies. Goggle hat zur Anzahl der geknackten Seiten  eine Statistik veröffentlicht. Besonders komplexe Systeme wie Wordpress und Drupal  mit vielen undurchsichtigen Plugins haben schwer feststellbare Sicherheitslücken.

Schon PHP selbst hat zu beachtende Sicherheitslücken.  Ein Beispiel ist php-allow_url_include-enabled, welches Einschleusen von Fremdcode ermglicht.  Daher sollte in der htaccess ein Eintrag wie php_flag allow_url_include off stehen.

Ein besonders kompliziertes Problem sind sog. XSS - Lücken (cross site scripting).

Zum verbesserten Schutz gegen X-XSS gibt es einen nicht von allen Browsern unterstützten htaccess-Eintrag :

<IfModule mod_headers.c> 
  Header set X-XSS-Protection "1; mode=block" 
</IfModule>

Eine erhöhte Sicherheit gegen diesbezügliche Clickframe-Angriffe gibt ein X-Frame-Options - htaccess-Eintrag

Header append X-FRAME-OPTIONS "SAMEORIGIN"     
Header set X-Frame-Options "deny"     
Header set X-Frame-Options "allow-from https://example.com/"

== Gegen Code-sniffing ==

Header set X-Content-Type-Options nosniff

* Cross site tracing (XST)

Ein Hacker, der versucht, ein CMS anzugreifen, versucht zuerst einmal, Informationen zu erhalten. Daher wird (auch von den Apache-Entwicklern) empfohlen, die Trace-Funktion auszuschalten.

RewriteCond %{REQUEST_METHOD} ^TRACE 
  RewriteRule .* - [F]

* at a virtual host (.htaccess) with the code:

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

== Directory indexing ==

Wer seine Seite gegen die Anzeige der Verzeichnis-Liste sichern will , kann eine htaccess-Datei mit dem Inhalt :   

 '  Options  -Indexes '   oder mit

IndexOptions -FancyIndexing

  in das entsprechende Verzeichnis kopieren. Eine Alternative ist, eine leere index.php hineinzukopieren - evtl. sogar mit Umlenkung im header.

* Weitere Sicherheit bietet der Umstieg auf das https-Protokoll (für Geschäftseiten in Deutschland zwingend).. 

* Eine weitere  Möglichkeit sind Vorfilter der URI, die Inhalte wie ?cgi , <script , escape  und ähnliches ausfiltern und dann die gesamte und auf eine bestimmte länge begrenzte URL mit PUT (o.ä.) zurückschreiben. Hier muss die Uri dann frei von bestimmten Zeichen wie ? sein, was bei vielen CMSsen besonders im eingeloggten Zustand Probleme bereitet und komplexe Filter erfordert.

*  Cross.-Site Request Forgery (CSRF) ist ein Angriff, der einen Endbenutzer dazu zwingt, unerwünschte Aktionen in einer Webanwendung auszuführen, in der er sich gerade authentifiziert. Zum Schutz dagegen gibt es sog. CSRF-Tokens. Typesetter verwendet CSRF-Tokens und in der neuen Beta einen diesbezüglich  erhöhten Schutz für das Dashboard.

Diesbezüglich  wurden anderweitig Plugins entwickelt wie der CSRF-Protector (zum anbinden an die index.php) und Csurf .


Diese Einträge betreffen hauptsächlich den Apache-Webserver.  Sie sind für den Nginx nicht anwendbar.

Es gibt aber htaccess-Konverter für Nginx-conf und spezielle Sicherungsoptionen.

*  Converting Apache Rewrite Rules to NGINX Rewrite Rules