Web Security für alle: X-XSS-Protection

Published on Tuesday, September 27, 2016 4:00:00 AM UTC in Programming & Security

Genau begründen kann ich es gar nicht, aber in meinem Kopf sortiere ich den X-XSS-Protection-Header immer in ein persönliches Gruselkabinett ein. Es widerstrebt mir fast, ihn zu implementieren. Vielleicht liegt es daran, dass die Funktionsweise zunächst proprietär und kaum durchschaubar war, oder dass es durchaus false positives geben kann? Oder auch daran, dass der vor XSS-Attacken schützende Header dazu genutzt werden konnte, eigentlich sichere Seiten für XSS-Attacken verwundbar zu machen, was Microsoft 2010 den Pwnie-Award für den Most Epic FAIL eingebracht hat. Dennoch verhindert der Header durchaus gewisse Angriffsszenarien, also los!

Web Security für alle: X-Content-Type-Options

Published on Monday, September 26, 2016 4:00:00 AM UTC in Programming & Security

Der Header X-Content-Type-Options ist recht trivial zu implementieren, da er nur einen einzigen Wert annehmen kann: nosniff. Auch was er bewirkt, ist schnell erklärt: er untersagt dem Browser, schwarze Magie zur automatischen Erkennung des Inhalts von Serverantworten anzuwenden. Stattdessen soll er sich strikt an den übermittelten MIME-Type halten. Microsoft erläutert das an einem Beispiel anschaulich: auch wenn eine Serverantwort als Content Type "Text" signalisiert, interpretierte der Internet Explorer den Inhalt eigenständig als HTML, wenn entsprechende Tags vorhanden waren. Dieses Verhalten bietet Potenzial für Angriffsvektoren (XSS), etwa wenn ein Browser Inhalte als Skripte interpretiert und ausführt, die nicht ausgeführt werden sollten. Der genannte Header unterdrückt dies und führt beispielsweise nur aus, was der Server explizit als Skript ausliefert.

Web Security für alle: X-Frame-Options

Published on Friday, September 23, 2016 4:00:00 AM UTC in Programming & Security

Ich erinnere mich an eine Zeit, in der es ein Katz- und Maus-Spiel gab zwischen Seitenbetreibern und fragwürdigen "Diensten" im Internet, die fremde Seiten in iFrames eingebettet angezeigt haben - man sprach von "frame busting"-Techniken, um dieses ungebetene Einbetten der eigenen Inhalte loszuwerden. Irgendwann wurde erkannt, dass dieses Einbetten nicht nur inhaltliche Aspekte hat, sondern auch ein ernsthaftes Sicherheitsproblem darstellt: Clickjacking kann dazu genutzt werden, Mausklicks und Tastatureingaben unbemerkt und ungewollt umzuleiten, etwa um Passwörter und ähnliche sensible Daten zu stehlen. Vorhandene Cheat-Sheets zu dem Thema zeigen schon, wie komplex dieses scheinbar einfache Thema ist, und wie wirkungslos viele Versuche, sich dagegen zu wehren.

Web Security für alle: HSTS

Published on Thursday, September 22, 2016 4:00:00 AM UTC in Programming & Security

Neben der eigentlichen Funktionalität für den Redirect zu https aus dem letzten Post gibt es eine ganze Reihe sicherheitsrelevanter Header, die man für seine Webseite umsetzen muss sollte kann. Die konkreten Maßnahmen hängen ganz von den persönlichen Ansprüchen, der Rolle der eigenen Seite und natürlich den verfügbaren Ressourcen und Fähigkeiten ab. Mozilla gibt in seinen Guidlines ein Cheat Sheet vor, das nicht nur eine sinnvolle Reihenfolge für die Umsetzung von Maßnahmen vorzugeben versucht, sondern auch den zu erwartenden Benefit aufführt. Ich beginne bei der Umsetzung mit dem http strict transport security-Header, oder kurz und einfach von der Zuge gehend: HSTS.

Web Security für alle: Redirect to https

Published on Wednesday, September 21, 2016 4:00:00 AM UTC in Programming & Security

Da wir nun ein glitzerndes Hochglanz-Zertifikat für den SSL-Betrieb der Webseite haben, mit dem die eigene Seite per https angesteuert werden kann und von den Browsern mit mehr oder weniger grünen Vorhängeschlössern präsentiert wird, ist ja alles in bester Ordnung - oder? Hmm..., mal sehen, was der Sicherheits-Check von Mozilla dazu sagt.

Never gonna give you up

Published on Tuesday, September 20, 2016 8:18:20 PM UTC in Skit & User Experience

So gut der technische Unterbau von Azure sein mag, so schlecht sind doch viele Aspekte der zugehörigen Account-Verwaltung. Seit Jahren beschreien empörte Nutzer, dass man beispielsweise lediglich Subscriptions kündigen kann, nicht aber den eigentlichen Account schließen. Auch über die extrem langsame Verwaltungsseite für Subscriptions, auf der jeder Klick zur Geduldsprobe wird, schimpfe ich schon lange. Hinterlegte Zahlungsmittel, die sich nicht löschen lassen, obwohl sie in keiner aktiven Subscription mehr genutzt werden, gesperrte Felder mit Informationen, die man augenscheinlich nirgends ändern kann - all das kann Grund für Ärger und Aufregung sein. Was ich allerdings heute sah, ließ mich eher einen Scherz vermuten.

SSL-Zertifikate mit Let's Encrypt

Published on Tuesday, September 20, 2016 4:00:00 AM UTC in Security & Tools

Schon seit einiger Zeit beobachte ich die Entwicklung, die sich im Bereich der SSL-Zertifikate ergeben hat. Was früher eine kostspielige und aufwändige, nicht selten auch hakelige Sache war, ist inzwischen großflächig kostenlos und sehr bequem zu haben. Dies ist natürlich in weiten Teilen der Initiative "Let's Encrypt" zu verdanken, die die Verbreitung von kostenlosen SSL-Zertifikaten entscheidend mit vorangetrieben hat. Nach dem Umzug auf einen eigenen Server war die Erstellung eines zugehörigen Zertifikats einer der ersten Schritte. Und obwohl ich mich im Vorfeld schon schlau gemacht hatte, war ich doch noch darüber erstaunt, wie einfach und schnell das Ganze dann wirklich von statten ging.

Debuggen mit HTTPS in IIS Express

Published on Monday, September 19, 2016 4:56:29 AM UTC in Programming & Tools

Da der von ASP.NET Core verwendete Webserver Kestrel typischerweise in einer Reverse-Proxy-Konfiguration mit altbekannten Webservern wie etwa IIS verwendet wird, übernehmen letztere diverse fortgeschrittene Themen wie etwa auch die SSL-Terminierung. Um also zur Entwicklungszeit SSL-Funktionen mittesten zu können, reicht es nicht mehr aus, nur Kestrel zu starten. Stattdessen verwendet man für gewöhnlich IIS Express, der ebenfalls SSL unterstützt und problemlos funktioniert. Normalerweise.

Wie man einen Server für ASP.NET Core einrichtet

Published on Monday, September 19, 2016 4:00:00 AM UTC in Programming & Tools

Passend zum letzten Post folgt hier die Liste der Einzelschritte, die ich typischerweise zum Einrichten eines "frischen" (Windows-)Servers für ASP.NET Core ausführe. Insbesondere die Einrichtung von Web Deploy und der Möglichkeit, per Publish Profile neue Versionen zu veröffentlichen, ist nicht besonders gut dokumentiert. Während die offizielle Doku fürs Einrichten des Hostings noch die ein oder anderen Vorgehensweisen und Tipps bereitstellt, heißt es zum Publishing lediglich lapidar, man solle doch das vom Hoster bereitgestellte Profil importieren... hallo? Ich bin der Hoster! Was muss ich tun?

Umzug zum eigenen Server

Published on Sunday, September 18, 2016 3:00:00 PM UTC in Tools & Announcements

Nach eher schlechten Erfahrungen mit reinem Hosting habe ich diese Seite vor etwa drei Jahren zu Microsoft Azure umgezogen, und ich hatte dort nie Probleme. Azure ist eine feine Sache und bietet faszinierende Möglichkeiten. Als Betreiber einer einfachen Webseite muss man allerdings eher viel für vergleichsweise wenig Gegenwert bezahlen, und in den unteren Preisklassen fehlen schlicht bestimmte Features. Azure hat eben noch immer nicht gewöhnliches Webhosting als Zielgruppe. Was mir insbesondere gefehlt hat war die Unterstützung für SSL/HTTPS, wofür man mindestens ein Basic-Paket benötigt, das selbst in der kleinsten Ausführung etwa 47€ im Monat verschlingt. Entscheidet man sich zusätzlich für ein von Microsoft verwaltetes Zertifikat, werden nochmals 59€ (und zwei Cent) pro Jahr fällig. Zeit, sich nach Alternativen umzusehen.

Browse: 1 ... 4 5 6 ... 28