Sicherheit
- OWASP : Vulnerability Scanning Tools
- Owasp : Source Code Analysis Tools
- Sync - Code Quality and security checker
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
- OWASP mit vielen Sicherheits - Hinweisen
- OWASP Web Application Vulnerability scanners
- HTML5 - Security
- Mozilla - Content Security Policy
- Selfhtml : Content security policy
- Content security policy.com
- Googles CSP evaluator
- Mozilla - Content Security
- Security headers
- Further examples for security headers
- Hardening Your Http Response Headers
- W3C - Trusted Types Api
- Dom - Purify - XSS security