Security Header testen – mit Webservices und Python

Security Header testen – mit Webservices und Python

Um herauszufinden welche Security Header für eine bestimmte Webseite gesetzt sind, können wir entweder einen Webservice nutzen, oder ein eigenes kleines Python Skript schreiben.

Webservices

Ich benutze gerne Securityheaders.com:

Security Header, testen, Webservices, Python

Vorteil an dieser Seite ist, dass man auch direkt Erklärungen zu den fehlenden Headern erhält:

Security Header, testen, Webservices, Python

Aber auch andere Seiten wie Serpworx.com

Security Header, testen, Webservices, Python

… oder Geekflare.com können genutzt werden:

Security Header, testen, Webservices, Python

Python

Wer sich nicht auf Webservices von Dritten verlassen will, oder eine automatisierte Lösung benötigt, kann mit einem einfachen Python Programm auch selbst prüfen, welche Header auf einer bestimmten Webseite gesetzt sind. Dazu wird die Python Standard Library Requests verwendet:

Security Header, testen, Webservices, Python

Mit dem kleinen Skript wird eine Webseite aufgerufen (in diesem Fall die Testwebseite example.com) und anschließend die gesetzten Header und ihre jeweiligen Werte ausgegeben. Bei der Variable headers handelt es sich um ein Dictionary mit dem Namen des Headers als Key (z.B. Server) und dem Inhalt des Headers als Value (z.B. Apache). Die entsprechenden Informationen werden dann, durch einen Doppelpunkt getrennt, auf der Kommandozeile ausgegeben:

Security Header, testen, Webservices, Python

Wir sehen in diesem Fall also, dass keinerlei Security Header gesetzt sind, was das Ergebnis der Webscans bestätigt.

Statt die URL hart codiert in das Skript zu integrieren, könnten wir URLs natürlich auch aus einem Textfile lesen, oder das Programm mit Input von der Kommandozeile versorgen. Dadurch kann das Skript beliebig variabel gestaltet werden und beispielsweise aus einer größeren Menge an Webseiten diejenigen ausfiltern, bei denen ein bestimmter Header auf einen bestimmten Wert gesetzt ist.