Was geprüft wird, Punkt für Punkt.
91 Sachverhalte in vier Paketen. Diese Seite entsteht beim Bauen aus dem Befund-Katalog des Prüfers selbst; sie kann deshalb nicht hinter ihm zurückbleiben. Jeder Eintrag trägt die Kennung, unter der er auch in Ihrem Bericht steht.
Sicherheit passiv
Die passive Sicherheitsprüfung löst genau die Zugriffe aus, die auch ein gewöhnlicher Besucher auslöst: Seiten abrufen, Namen auflösen, die Verschlüsselung der Verbindung ansehen. Sie greift Ihren Auftritt nicht an und braucht deshalb keine Freigabe. Was hier steht, prüft jeder Lauf.
Geprüft wird eine Auswahl der gefundenen Unterseiten, je Seitenvorlage mehrere, dazu immer die Startseite. Wer die Vollprüfung einschaltet, bekommt statt der Auswahl alle gefundenen Unterseiten.
Prüfbereiche
- Prüfung des vorgeladenen Seitenzustands
Im Bericht als Abdeckung ausgewiesen
Zu jedem dieser Punkte sagt Ihr Bericht, ob er vollständig, teilweise oder gar nicht erhoben wurde, und warum.
- Analyse ausgelieferter Inhalte
- Framework-Prüfung
- Analyse nachgeladener Browserdaten
- Erhebung der Unterseiten
- Vermerke zum Umfang der Erhebung
- Abgleich der eingebundenen JavaScript-Pakete
- Erkennung angebundener Datendienste
Erkannte Sachverhalte
Anwendungslogik
Formulare ohne Schutz gegen fremdausgelöste Aktionen
Zustandsändernde Anfragen werden ohne ein Einmal-Token entgegengenommen. Der Server prüft damit nicht, ob eine Anfrage tatsächlich aus der eigenen Seite stammt.
Datenlecks
Interne Daten im vorgeladenen Seitenzustand
Moderne Webanwendungen legen den Anfangszustand einer Seite als Datenblock in die ausgelieferte Seite, damit der Browser sie ohne zweite Anfrage aufbauen kann. In diesem Block stehen Felder, die nicht für Besucher bestimmt sind.
Sensible Daten in ausgelieferten Webinhalten
Eine ausgelieferte Antwort enthält ein als sensibel erkanntes Datenmuster. Der Beleg nennt die Erkennungsregel und enthält keinen Geheimniswert.
Zugangsdaten im ausgelieferten Programmcode
In einer JavaScript-Datei, die der Auftritt an jeden Besucher ausliefert, steht ein Wert in der Form eines Zugangsschlüssels. Der Beleg nennt die Fundstelle und die Art des Musters, nicht den Wert selbst.
DNS
Kein CAA-Eintrag im DNS
Es ist nicht festgelegt, welche Zertifizierungsstellen Zertifikate für diese Domain ausstellen dürfen.
DMARC ohne Durchsetzung
Eine DMARC-Richtlinie ist vorhanden, steht aber auf p=none. Das bedeutet, es wird geprüft, aber nichts unternommen.
Kein DMARC-Eintrag vorhanden
Für die Domain ist keine DMARC-Richtlinie hinterlegt. Damit ist nicht festgelegt, wie empfangende Mailserver mit gefälschten Absendern umgehen sollen.
Kein SPF-Eintrag vorhanden
Es ist nicht hinterlegt, welche Server E-Mails für diese Domain versenden dürfen.
SPF-Eintrag ohne strikte Ablehnung
Der SPF-Eintrag endet auf ~all statt auf -all. Nicht autorisierte Absender werden damit lediglich markiert, nicht abgelehnt.
Härtung
Content-Security-Policy fehlt
Die Richtlinie legt fest, aus welchen Quellen der Browser Skripte und andere Inhalte laden darf. Sie ist nicht gesetzt.
Interne PHP-Dateien sind direkt aufrufbar
PHP-Dateien in internen Verzeichnissen des Systems werden vom Webserver an den PHP-Interpreter weitergereicht, statt den Zugriff abzulehnen. Erkennbar daran, dass der Aufruf einen Serverfehler auslöst, statt mit "verboten" beantwortet zu werden.
Nicht benötigte HTTP-Methoden erlaubt
Der Server nimmt HTTP-Methoden entgegen, die für den Betrieb einer Website nicht erforderlich sind, etwa TRACE, PUT oder DELETE.
Permissions-Policy fehlt
Die Richtlinie schränkt ein, ob eingebettete Inhalte auf Kamera, Mikrofon oder Standort zugreifen dürfen. Sie ist nicht gesetzt.
Referrer-Policy fehlt
Die Richtlinie steuert, wie viel von der aufgerufenen Adresse an fremde Server weitergegeben wird, wenn ein Besucher die Seite verlässt. Sie ist nicht gesetzt.
Schutz gegen Einbettung in fremde Seiten fehlt
Weder X-Frame-Options noch eine frame-ancestors-Regel sind gesetzt. Die Seite kann damit unsichtbar in eine fremde Seite eingebettet werden.
Strict-Transport-Security fehlt
Der Header erzwingt, dass der Browser die Seite künftig ausschließlich über HTTPS aufruft. Er ist nicht gesetzt.
X-Content-Type-Options fehlt
Der Header verhindert, dass der Browser den Dateityp einer Antwort errät, statt sich auf die Angabe des Servers zu verlassen. Er ist nicht gesetzt.
Zugriff von beliebigen fremden Herkünften erlaubt
Der Server erlaubt fremden Websites, seine Antworten auszulesen: über einen Platzhalter, indem er jede angefragte Herkunft zurückspiegelt, oder indem er den Wert „null“ freigibt. „null“ sieht aus wie eine benannte Herkunft, ist aber keine: jedes Dokument in einem Sandbox-iframe und jede Seite aus einem lokalen Dateikontext schickt genau diesen Wert.
Informationslecks
Liste der installierten Erweiterungen ohne Anmeldung abrufbar
Die Anmeldeseite der Verwaltungsoberfläche bindet bereits vor jeder Anmeldung die Gestaltungs- und Skriptdateien sämtlicher installierter Erweiterungen ein. Aus deren Pfaden lässt sich ablesen, welche Erweiterungen im Einsatz sind.
Quelltextkarten mit Servercode ausgeliefert
Neben dem ausgelieferten Programmcode liegt die zugehörige Quelltextkarte öffentlich abrufbar. Sie enthält den ursprünglichen Quelltext, in diesem Fall auch Teile, die nur auf dem Server laufen sollten.
Unkompilierte Quelldateien oder Bibliotheken öffentlich lesbar
Dateien, die für den Betrieb der Seite nicht ausgeliefert werden müssen, sind öffentlich abrufbar. Dazu zählen unkompilierte Quelldateien von Vorlagen und mitgelieferte Bibliotheksdateien.
Versionskennungen in HTTP-Antwortköpfen
Der Server gibt in seinen Antworten die eingesetzte Software und teilweise deren genaue Version preis.
Vertrauliche Datei öffentlich abrufbar
Eine Datei, die nicht öffentlich sein darf, ist über das Internet abrufbar. Betroffen sind typischerweise Konfigurationsdateien mit Zugangsdaten, Datenbanksicherungen oder Verzeichnisse der Versionsverwaltung.
Verzeichnisinhalt wird aufgelistet
Der Webserver listet den Inhalt eines Verzeichnisses auf, statt den Zugriff abzulehnen.
Komponenten
Beobachtete Framework-Version in Schwachstellenhinweis aufgeführt
Eine in öffentlich ausgelieferten Webdaten wörtlich beobachtete npm-Paketversion ist im OSV-Schwachstellenfeed als betroffen aufgeführt. Paket, Version und Advisory-Kennungen stehen im Beleg. Die Zuordnung beschreibt den veröffentlichten Versionshinweis und belegt keine erfolgreiche Ausnutzung auf diesem Auftritt.
Komponente mit öffentlich bekannten Schwachstellen
Für die erkannte Komponente sind in öffentlichen Schwachstellendatenbanken Einträge dokumentiert, die auf die festgestellte Version zutreffen. Die einzelnen Schwachstellen sind unten aufgeführt; ausführliche Angaben je CVE-Kennung stehen im Anhang „CVE-Register".
Kompromittierung
Ausführbarer Inhalt von einem nicht zuordenbaren Fremd-Host
Beim Aufruf der Seite wurde ausführbarer Inhalt von einem fremden Host geladen, der keinem der gepflegten Anbieter zugeordnet werden kann. Gemeint sind Skripte und eingebettete Rahmen, nicht Bilder oder Schriftarten.
Weiterleitung auf eine fremde Domain
Der Aufruf Ihrer Adresse endete auf einer Domain, die nicht zu Ihrem Auftritt gehört. Die Prüfung wurde an dieser Stelle abgebrochen: fremde Infrastruktur wird nicht geprüft.
Organisation
Keine security.txt hinterlegt
Unter /.well-known/security.txt ist keine Datei hinterlegt.
Sitzungen
Cookie ohne Secure-Attribut
Mindestens ein Cookie wird ohne Secure-Attribut gesetzt und kann damit auch über eine unverschlüsselte Verbindung übertragen werden.
Sitzungs-Cookie ohne HttpOnly-Attribut
Das Sitzungs-Cookie ist für JavaScript im Browser lesbar.
Sitzungs-Cookie ohne SameSite-Attribut
Das Cookie, über das die Sitzung eines Besuchers erkannt wird, trägt kein SameSite-Attribut.
Software-Stand
Eingesetzte Komponente erhält keine Sicherheitsupdates mehr
Eine der eingesetzten Komponenten hat das Ende ihres Lebenszyklus erreicht. Der Hersteller veröffentlicht keine Sicherheitskorrekturen mehr.
Eingesetzte Komponente ist veraltet
Eine eingesetzte Komponente wird zwar noch unterstützt, liegt aber deutlich hinter dem aktuellen Stand ihrer Versionsreihe zurück.
Eingesetzte Redaktionssystem-Version ist als anfällig gemeldet
Die am Auftritt beobachtete Version des Redaktionssystems ist in einem öffentlichen Schwachstellenverzeichnis als betroffen geführt. Version und Verzeichniskennung stehen im Beleg.
Verschlüsselung
Keine Weiterleitung auf HTTPS
Ein Aufruf über die unverschlüsselte Adresse wird nicht auf die verschlüsselte weitergeleitet. Die Seite ist dauerhaft im Klartext nutzbar.
Komprimierte Auslieferung ermöglicht theoretisch BREACH
Der Server liefert Antworten komprimiert aus. In Verbindung mit verschlüsselter Übertragung eröffnet das theoretisch den BREACH-Angriff, mit dem sich geheime Werte aus komprimierten Antworten ableiten lassen.
Veraltete Verschlüsselungsprotokolle aktiv
Der Server akzeptiert noch TLS 1.0 oder TLS 1.1. Beide gelten seit Jahren als überholt.
Zertifikat läuft in Kürze ab
Das Zertifikat der Seite läuft in weniger als 21 Tagen ab.
Zugang
Administrationsoberfläche öffentlich erreichbar
Die Verwaltungsoberfläche ist ohne vorgelagerte Hürde aus dem gesamten Internet erreichbar. Es besteht keine Beschränkung auf bekannte IP-Adressen und kein zusätzlicher Passwortschutz davor.
Datendienst ohne Zugriffsschutz erreichbar
Der Auftritt spricht einen Datendienst eines Anbieters an, und dieser Dienst beantwortet Anfragen ohne Anmeldung. Der Beleg nennt die angesprochene Adresse und die Antwort des Dienstes.
Sicherheit aktiv
Die aktive Prüfung setzt eine verifizierte Domain voraus, denn sie stellt Anfragen, die über einen gewöhnlichen Seitenaufruf hinausgehen. Sie enthält alles aus der passiven Prüfung und legt das Folgende darauf. Die tiefsten Prüfungen an einem erkannten Redaktionssystem verlangen zusätzlich eine schriftliche Freigabe.
Derselbe Seitenumfang wie in der passiven Prüfung. Die gezielten Tests richten sich auf die dabei gefundenen Eingabestellen, Anmeldeformulare und offenen Dienste.
Enthält vollständig: Sicherheit passiv.
Prüfbereiche
- Prüfung der offenen Dienste
- Tiefenprüfung der Verschlüsselung
- Abgleich bekannter Schwachstellenmuster
- Prüfung des Redaktionssystems
- Aktive Prüfung auf einschleusbare Eingaben
- Prüfung auf SQL-Injection
- Prüfung der ausgelieferten Programmdateien auf Zugangsdaten
- Prüfung ausgelieferter Quelltextkarten
- Prüfung der WordPress-Erweiterungen
Im Bericht als Abdeckung ausgewiesen
Zu jedem dieser Punkte sagt Ihr Bericht, ob er vollständig, teilweise oder gar nicht erhoben wurde, und warum.
- Lesbarkeit angebundener Datendienste ohne Anmeldung
- Einhaltung des freigegebenen Prüfumfangs
- Vollständigkeit der geprüften Verbindungen
Erkannte Sachverhalte
Eingabevalidierung
Eingaben werden ungefiltert in die Seite zurückgegeben
Eine Eingabe aus der Adresszeile erscheint unverändert im ausgelieferten Seiteninhalt, ohne dass Sonderzeichen maskiert werden.
SQL-Injection möglich
Eine Eingabe wird ungeprüft in eine Datenbankabfrage übernommen. Damit lässt sich die Abfrage von außen verändern.
Infrastruktur
Datenbank direkt aus dem Internet erreichbar
Ein Datenbankdienst nimmt Verbindungen direkt aus dem Internet entgegen.
Hosting-Panel öffentlich erreichbar
Die Verwaltungsoberfläche des Hosting-Servers ist aus dem Internet erreichbar.
Unverschlüsselte Dienste erreichbar
Dienste, die Zugangsdaten unverschlüsselt entgegennehmen können, sind aus dem Internet erreichbar. Betroffen sind typischerweise FTP sowie die unverschlüsselten Mail-Ports.
Komponenten
Erweiterung mit bekannten Schwachstellen
Eine installierte Erweiterung liegt in einer Version, für die öffentliche Schwachstellennachweise existieren. Welche davon konkret ausgenutzt werden können, hängt vom Einsatzzweck der Erweiterung ab.
Verschlüsselung
Veraltete Verschlüsselungsverfahren aktiv
Neben modernen Verfahren bietet der Server noch ältere Cipher-Suites im CBC-Modus an, die theoretisch für Zeitangriffe anfällig sind.
Zugang
Gültige Benutzerkonten sind von außen unterscheidbar
Die Anwendung antwortet auf Anfragen mit existierenden Konten anders als auf Anfragen mit erfundenen. Der Unterschied kann im Text, im Statuscode oder in der Antwortzeit liegen.
Kein erkennbarer Schutz gegen automatisiertes Passwortraten
Wiederholte Anmeldeversuche werden nicht spürbar gebremst. Es gab keine Verzögerung, keine Sperre und keine Aufforderung zu einem Sicherheitscode.
Plugin-Funktion ohne Anmeldung ausführbar
Eine Funktion einer installierten Erweiterung (Plugin) ist über den internen Aufrufer admin-ajax.php erreichbar, ohne dass sich jemand anmeldet. Die Funktion sollte eigentlich nur für eingeloggte Nutzer oder Administratoren gedacht sein.
REST-Schnittstelle ohne Anmeldung erreichbar
Die Programmierschnittstelle (REST-API) des CMS ist ohne Anmeldung von außen abrufbar und liefert Daten, die nicht für jeden Gast bestimmt sind.
Datenschutz
Die Datenschutzprüfung öffnet Ihre Seiten in einem echten Browser und beobachtet, was geschieht, bevor ein Besucher irgendetwas angeklickt hat: welche Cookies gesetzt werden, welche Verbindungen zu fremden Anbietern entstehen und ob ein Einwilligungsdialog überhaupt wirkt. Jeder Befund nennt seine Rechtsgrundlage.
Geprüft wird dieselbe Auswahl an Unterseiten wie in der Sicherheitsprüfung, mit eingeschalteter Vollprüfung alle gefundenen Unterseiten.
Prüfbereiche
- Datenschutzprüfung im Browser
Erkannte Sachverhalte
Datenschutz
Cookies mit sehr langer Laufzeit
Einzelne Cookies haben eine Laufzeit von deutlich mehr als zwölf Monaten.
Daten werden vor der Einwilligung im Endgerät gespeichert
Beim ersten Aufruf werden Informationen im Speicher des Browsers abgelegt, bevor der Besucher zugestimmt hat.
Datenübermittlung an Anbieter in Drittländern beim Seitenaufruf
Beim Aufruf der Seite werden Verbindungen zu Anbietern aufgebaut, die personenbezogene Daten in Länder außerhalb der EU übertragen können.
Inhalt eines Drittanbieters ohne erkennbare Einwilligung eingebunden
Die Seite bindet Inhalte eines Drittanbieters ein, die bereits beim Aufruf Daten an diesen Anbieter übertragen.
Kein Einwilligungsdialog trotz einwilligungspflichtiger Dienste
Die Seite bindet Dienste ein, die eine Einwilligung erfordern, zeigt aber keinen erkennbaren Einwilligungsdialog an.
Kein Impressum auffindbar
Auf der Seite wurde kein Impressum gefunden. Geschäftsmäßige Seiten müssen eine Anbieterkennzeichnung bereitstellen.
Keine Datenschutzerklärung auffindbar
Auf der Seite wurde keine Datenschutzerklärung gefunden. Eine solche Erklärung informiert Besucher über die Verarbeitung ihrer Daten.
Nicht notwendige Cookies werden vor der Einwilligung gesetzt
Beim ersten Aufruf der Seite werden Cookies gesetzt, die für den Betrieb der Seite nicht erforderlich sind, noch bevor der Besucher zugestimmt hat.
Schriftarten werden von einem externen Anbieter nachgeladen
Die Seite lädt Schriftarten von einem externen Anbieter. Dabei wird die IP-Adresse des Besuchers an diesen Anbieter übertragen.
Tracking-Skripte laden vor der Einwilligung
Beim ersten Aufruf der Seite, also bevor der Besucher irgendetwas bestätigt hat, werden bereits Skripte von Drittanbietern geladen.
Videos ohne erweiterten Datenschutzmodus eingebunden
Eingebettete Videos werden ohne den erweiterten Datenschutzmodus geladen, sodass bereits beim Seitenaufruf Daten an den Videoanbieter fließen.
Barrierefreiheit
Die Barrierefreiheitsprüfung misst an WCAG 2.2 Stufe AA, dem Maßstab, auf den das Barrierefreiheitsstärkungsgesetz und die BITV 2.0 verweisen. Jedes Erfolgskriterium bekommt einen Stand, auch die, über die nur ein Mensch entscheiden kann; die stehen dann als solche im Bericht und nicht als bestanden.
Geprüft wird dieselbe Auswahl an Unterseiten wie in der Sicherheitsprüfung, mit eingeschalteter Vollprüfung alle gefundenen Unterseiten. Ein Befund je Erfolgskriterium, mit den Fundstellen.
Prüfbereiche
- Barrierefreiheitsprüfung im Browser
Erkannte Sachverhalte
Barrierefreiheit
Anderssprachige Abschnitte nicht ausgezeichnet
Textstellen in einer anderen Sprache tragen keine eigene Sprachangabe.
Bedienelement ohne Namen, Rolle oder Zustand
Ein Bedienelement teilt Hilfsmitteln nicht mit, wie es heißt, was es ist oder in welchem Zustand es sich befindet.
Bewegung ohne Möglichkeit anzuhalten
Etwas blinkt, läuft oder aktualisiert sich selbst, und es gibt keine Bedienung zum Anhalten.
Bilder ohne Textalternative
Bilder, Grafiken oder Bedienelemente ohne Text tragen keine Textalternative. Wer nicht sieht, erfährt nicht, was dort steht.
Eingabefehler nicht in Text benannt
Ein Formular meldet einen Fehler, ohne ihn in Text zu benennen oder dem betroffenen Feld zuzuordnen.
Eingabefeld ohne Beschriftung
Ein Eingabefeld hat keine verknüpfte Beschriftung oder mehrere widersprüchliche.
Eingabefelder ohne maschinenlesbaren Zweck
Felder für persönliche Daten geben ihren Zweck nicht maschinenlesbar an.
Größere Textabstände schneiden Inhalt ab
Werden Zeilen- oder Buchstabenabstände vergrößert, geht Inhalt verloren.
Information allein über Farbe
Etwas wird ausschließlich durch Farbe unterschieden, zum Beispiel ein Link im Fließtext oder ein Pflichtfeld.
Klickfläche zu klein
Bedienelemente sind kleiner als 24 mal 24 Pixel und stehen zu eng beieinander.
Lesereihenfolge folgt dem Layout statt dem Sinn
Die Reihenfolge im Code weicht von der Reihenfolge ab, in der die Seite gelesen werden soll.
Linkzweck nicht erkennbar
Ein Link hat keinen Text oder einen, aus dem sein Ziel nicht hervorgeht.
Nicht mit der Tastatur bedienbar
Ein Bedienelement lässt sich mit der Maus benutzen, mit der Tastatur nicht.
Seite erzwingt eine Bildschirmausrichtung
Die Darstellung ist auf Hoch- oder Querformat festgelegt.
Seite ohne aussagekräftigen Titel
Der Seitentitel fehlt oder benennt den Zweck der Seite nicht.
Sichtbare Beschriftung fehlt im zugänglichen Namen
Der sichtbare Text eines Bedienelements kommt in seinem zugänglichen Namen nicht vor.
Sprache der Seite nicht angegeben
Das `lang`-Attribut fehlt, ist leer oder nennt eine ungültige Sprache.
Struktur nur optisch, nicht im Code
Was optisch als Überschrift, Liste, Tabelle oder Beschriftung erkennbar ist, steht im Code nicht als solches.
Tastaturfokus nicht sichtbar
Beim Bedienen mit der Tastatur ist nicht zu sehen, welches Element gerade den Fokus hat.
Text lässt sich nicht auf 200 Prozent vergrößern
Die Seite unterbindet das Vergrößern oder verliert dabei Inhalt.
Text mit zu geringem Kontrast
Text hebt sich zu schwach von seinem Hintergrund ab. Verlangt sind 4,5:1, bei großer Schrift 3:1.
Ton startet von selbst und lässt sich nicht abschalten
Beim Aufruf startet Ton, der länger als drei Sekunden läuft, ohne dass es eine Bedienung zum Anhalten gibt.
Ton- oder Bildbeitrag ohne Alternative
Ein aufgezeichneter Ton- oder Videobeitrag hat keine gleichwertige Alternative in Text.
Unlogische Fokus-Reihenfolge
Der Tastaturfokus springt in einer Reihenfolge, die dem sichtbaren Aufbau widerspricht.
Video ohne Untertitel
Ein aufgezeichnetes Video mit Ton hat keine Untertitelspur.
Waagerechtes Scrollen bei schmalem Fenster
Bei 320 Pixel Breite entsteht waagerechtes Scrollen; Inhalt liegt außerhalb des sichtbaren Bereichs.
Wiederkehrende Bereiche lassen sich nicht überspringen
Es gibt keinen Sprunglink und keine Bereichsauszeichnung, mit der sich Kopfzeile und Navigation überspringen ließen.
Zeitbegrenzung ohne Verlängerung
Die Seite lädt sich selbst neu oder leitet nach einer Frist weiter, ohne dass sich das verlängern oder abschalten lässt.
Der Schweregrad hängt am Einsatzzweck.
Die Angabe hinter jeder Kennung ist der Ausgangswert. Ob ein Sachverhalt in Ihrem Bericht höher oder niedriger steht, entscheidet der Kontext Ihrer Seite, etwa Shop oder Broschüre. Wie das im Einzelnen wirkt, steht im Befund-Katalog der Dokumentation. Welches Paket in welchem Tarif enthalten ist, steht auf der Preisseite.