Technische Dokumentation
Detaillierte Beschreibung aller Tests und Prüfungen, die der Enjyn Crawler durchführt. Für Entwickler und technisch Interessierte.
Für EntwicklerSystem-Architektur
Technologie-Stack
Scan-Ablauf
Sicherheits-Tests
SSL/HTTPS Zertifikat
Prüft ob die Website über HTTPS erreichbar ist und ob das SSL-Zertifikat gültig ist.
Technische Umsetzung
- Verbindung über Port 443 mit
ssl.create_default_context() - Auslesen des Zertifikats mit
ssock.getpeercert() - Prüfung des
notAfterDatums für Ablaufwarnung - Warnung bei < 30 Tagen, kritisch bei < 14 Tagen
HSTS Header
HTTP Strict Transport Security zwingt Browser, nur HTTPS zu verwenden.
Technische Umsetzung
- Prüfung auf
Strict-Transport-SecurityHeader - Nur relevant wenn Seite über HTTPS geladen wurde
- Verhindert Downgrade-Angriffe auf HTTP
Content Security Policy
CSP schützt vor XSS-Angriffen durch Whitelist für erlaubte Ressourcen.
Technische Umsetzung
- Prüfung auf
Content-Security-PolicyHeader - Alternativ:
Content-Security-Policy-Report-Only - Alternativ:
<meta http-equiv="CSP">Tag
Clickjacking-Schutz
Verhindert dass die Seite in fremden iFrames eingebettet wird (Clickjacking).
Technische Umsetzung
- Prüfung auf
X-Frame-OptionsHeader - Alternativ: CSP
frame-ancestorsDirektive - Nur kritisch bei Seiten mit Login-Formularen
Mixed Content
Erkennt unsichere HTTP-Ressourcen auf HTTPS-Seiten (Bilder, Scripts, Styles).
Technische Umsetzung
- Scan aller
<script>,<link>,<img>,<iframe>Tags - Prüfung ob
srcoderhrefmithttp://beginnt - Zählung der unsicheren Ressourcen
Veraltete Bibliotheken
Erkennt bekannte verwundbare JavaScript-Bibliotheken (jQuery, Angular, Bootstrap, Lodash).
Technische Umsetzung
- Regex-Pattern für Versions-Erkennung in Script-Pfaden
- Abgleich mit bekannten verwundbaren Versionen
- z.B. jQuery < 3.5.0 hat XSS-Schwachstellen
Exponierte Informationen
Erkennt sensible Daten in HTML-Kommentaren, Debug-Modi und Server-Pfade.
Technische Umsetzung
- Suche nach Schlüsselwörtern: password, api_key, secret, token
- Erkennung von Debug-Indikatoren: debug=true, localhost
- Server-Pfade: /var/www/, C:\\, /home/user/
Unsichere Formulare
Prüft Formulare auf HTTP-Action, fehlenden CSRF-Schutz und GET bei sensiblen Daten.
Technische Umsetzung
- Prüfung
action="http://..."(unverschlüsselt) - Suche nach CSRF-Token in Hidden-Fields
- GET-Methode bei Passwort/Email-Feldern = unsicher
SEO-Tests
Title-Tag
Prüft Vorhandensein, Länge (10-70 Zeichen) und Qualität des Title-Tags.
Technische Umsetzung
soup.find('title')- Title-Tag finden- Längenkontrolle: 10-70 Zeichen optimal
- Erkennung generischer Titles: "Home", "Willkommen", "Untitled"
Meta-Description
Prüft Vorhandensein und optimale Länge (50-160 Zeichen) der Meta-Description.
Technische Umsetzung
soup.find('meta', {'name': 'description'})- Optimal: 50-160 Zeichen für Suchergebnisse
- Zu kurz: verschenktes Potential
- Zu lang: wird in SERPs abgeschnitten
H1-Überschrift
Prüft ob genau eine H1-Überschrift vorhanden ist und diese Inhalt hat.
Technische Umsetzung
soup.find_all('h1')- Alle H1s zählen- Optimal: Genau 1 H1 pro Seite
- Mehrere H1s oder keine = SEO-Problem
Bild Alt-Texte
Prüft ob Bilder Alt-Attribute haben (wichtig für SEO und Screenreader).
Technische Umsetzung
- Alle
<img>Tags sammeln - Prüfung auf
altAttribut - Dekorative Bilder (Icons) werden übersprungen
- Warnung bei > 20% fehlenden Alt-Tags
Canonical URL
Prüft ob eine kanonische URL definiert ist (verhindert Duplicate Content).
Technische Umsetzung
soup.find('link', {'rel': 'canonical'})- Prüfung ob href-Attribut vorhanden
- Wichtig bei mehreren URL-Varianten (www/non-www)
Strukturierte Daten
Erkennt Schema.org JSON-LD und Microdata für Rich Snippets.
Technische Umsetzung
- Suche nach
<script type="application/ld+json"> - Erkennung von Microdata:
itemscope,itemprop - Schema-Typen: Organization, LocalBusiness, Product
Rechtliche Tests
Impressum
Prüft ob ein Impressum vorhanden und erreichbar ist.
Technische Umsetzung
- Suche nach Links mit "impressum" oder "imprint" im href/Text
- Fallback: Standardpfade (/impressum, /imprint, /legal)
- HTTP 200 Response erforderlich
- Inhalt wird für weitere Analysen gespeichert
Datenschutzerklärung
Prüft ob eine Datenschutzerklärung vorhanden ist.
Technische Umsetzung
- Suche nach Links: "datenschutz", "privacy", "dsgvo"
- Standardpfade: /datenschutz, /privacy, /privacy-policy
- Auch im Footer-Bereich gesucht
Cookie-Banner
Erkennt ob ein Cookie-Consent-Banner implementiert ist.
Technische Umsetzung
- Erkennung bekannter Tools: Cookiebot, OneTrust, Borlabs, Klaro
- Keyword-Suche: "cookie", "consent", "einwilligung"
- Prüfung auf Cookie-Banner Container
Externe Fonts (DSGVO)
Erkennt Google Fonts und andere externe Schriften (IP-Übertragung in USA).
Technische Umsetzung
- Suche nach
fonts.googleapis.com - Suche nach
fonts.gstatic.com - Empfehlung: Self-Hosting der Fonts
Mobile-Tests
Viewport Meta-Tag
Prüft ob der Viewport korrekt konfiguriert ist für responsive Darstellung.
Technische Umsetzung
- Suche nach
<meta name="viewport"> - Prüfung auf
width=device-width - Warnung bei fester Breite (z.B. width=1024)
- Warnung bei
user-scalable=no(Barrierefreiheit)
Responsive Design
Prüft ob Media Queries oder Responsive Frameworks verwendet werden.
Technische Umsetzung
- Suche nach
@mediaRules im CSS - Erkennung von Frameworks: Bootstrap, Tailwind, Foundation
- Responsive Klassen: col-, grid, flex, d-none
Feste Breiten
Erkennt feste Pixel-Breiten > 400px die horizontales Scrollen verursachen.
Technische Umsetzung
- Regex:
width:\s*(\d{4,})px - Prüfung von inline Styles und CSS
- width-Attribute auf div, table, section
Touch-Targets
Erkennt zu kleine Klickziele (< 30px) die auf Touch-Geräten schwer zu treffen sind.
Technische Umsetzung
- Prüfung von Links, Buttons, Inputs
- Analyse von height/width in inline Styles
- Empfohlen: Mindestens 44x44px (Apple HIG)
Schriftgrößen
Erkennt zu kleine Schriftgrößen (< 12px) die auf Mobile schwer lesbar sind.
Technische Umsetzung
- Regex:
font-size:\s*(\d+)(px|pt) - pt zu px Konvertierung (×1.33)
- Warnung bei mehreren < 12px Definitionen
Flash/Silverlight
Erkennt veraltete Plugin-Inhalte die auf Mobilgeräten nicht funktionieren.
Technische Umsetzung
- Suche nach
<object>und<embed> - Prüfung auf type="application/x-shockwave-flash"
- Erkennung von .swf Dateien
Vertrauens-Tests (eTrust)
Kontaktinformationen
Prüft ob E-Mail, Telefon oder Kontaktformular vorhanden sind.
Technische Umsetzung
- E-Mail-Regex:
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} - Priorität: info@, kontakt@, contact@, mail@
- Filter: Keine Bild-URLs, keine Platzhalter
Malware-Indikatoren
Erkennt verdächtige Scripts, Cryptominer und Phishing-Elemente.
Technische Umsetzung
- Bekannte Miner: CoinHive, JSEcoin, CryptoLoot
- Obfuskierter Code: eval(atob(...)), document.write(unescape(...))
- Redirect-Ketten, versteckte iFrames
Professionelles Erscheinungsbild
Prüft auf Favicon, Lorem Ipsum, Platzhalter-Bilder und "Coming Soon".
Technische Umsetzung
- Favicon:
<link rel="icon">oder/favicon.ico - Lorem Ipsum Erkennung im Text
- Platzhalter: placeholder.com, via.placeholder.com
Länder-Erkennung
Ermittelt das Land anhand von Postleitzahlen, Telefonnummern und USt-IdNr.
Technische Umsetzung
- DE: 5-stellige PLZ, +49, DE + 9 Ziffern (USt-IdNr)
- AT: 4-stellige PLZ + Wien/Graz, +43, ATU + 8 Ziffern
- CH: 4-stellige PLZ + Zürich/Bern, +41, CHE-Format
CMS-Erkennung
Erkennt das verwendete CMS oder Website-Builder System.
Technische Umsetzung
- WordPress: /wp-content/, meta generator, wp-json
- Wix: wix.com, x-wix Header
- Shopify: cdn.shopify.com, x-shopify Header
- +15 weitere: Joomla, Drupal, TYPO3, Squarespace, Webflow...
Sprach-Erkennung
Erkennt die Sprache der Website (nur deutschsprachige Seiten werden vollständig gescannt).
Technische Umsetzung
- Priorität 1: HTML lang-Attribut (lang="de")
- Priorität 2: Lingua Library (AI-basiert, 95%+ Genauigkeit)
- Priorität 3: langdetect (statistisch)
- Fallback: Deutsche Keywords (Impressum, Datenschutz, etc.)