Begriff
Wildcard
Warum wichtig?
Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.
Ein Joker im Kartenspiel.
Er kann für jede beliebige Karte stehen.
In der IT ist das meistens das Sternchen *.
Es bedeutet: "Hier kann alles stehen."
*.txt= Alle Dateien, die mit.txtenden (hallo.txt,liste.txt).Bild_*.jpg=Bild_01.jpg,Bild_Urlaub.jpg.
Das Fragezeichen ? ist oft der kleine Bruder: "Genau ein beliebiges Zeichen."
Te?t=TestoderText, aber nichtTeest.
Merksatz: Ein Platzhalterzeichen (meist *), das in Suchmustern oder Befehlen für eine beliebige Zeichenfolge steht.
Shell (Globbing):
rm *.tmp (Lösche alle temporären Dateien).
Gefahr: rm * .tmp (Leerzeichen zu viel!). Löscht alles und dann .tmp. Klassischer Anfängerfehler.
SQL:
SELECT * FROM users; (Zeig mir alle Spalten).
WHERE name LIKE 'Müller%'; (Alle Müller, Müller-Lüdenscheid, etc.).
1. Wildcard Zertifikate (SSL)
Ein Zertifikat für *.google.com.
Gilt für mail.google.com, drive.google.com, maps.google.com.
Vorteil: Man muss nur ein Zertifikat kaufen/verwalten.
Nachteil: Wenn der Private Key gestohlen wird, sind alle Subdomains kompromittiert.
Sicherheitsregel: Wildcards sind bequem, aber erhöhen das Risiko. Besser: Einzelne Zertifikate (Automatisierung mit Let's Encrypt).
2. DNS Wildcard Record
Eintrag: *.example.com -> 1.2.3.4.
Egal was der User eintippt (blabla.example.com, gibt-es-nicht.example.com), er landet immer auf deinem Server.
Nützlich für SaaS-Plattformen ("Jeder Kunde kriegt eine eigene Subdomain").
3. Globbing vs. RegEx
Wildcards in der Shell heißen "Globbing".
* = Alles.
In RegEx (Regular Expressions) bedeutet * etwas anderes ("Das Zeichen davor beliebig oft wiederholen").
Das "Alles"-Wildcard in RegEx ist .* (Punkt Stern).
Verwechsle das nicht!
1. Performance-Kosten (O(n) vs. Hash)
Suchen mit Wildcards ist "teuer".
Wenn du in einer Datenbank nach WHERE name = 'Max' suchst, nutzt die DB einen Index (Hash/B-Tree) und findet das Ergebnis in Millisekunden (O(log n)).
Suchst du nach WHERE name LIKE '%Max%', muss die Datenbank jeden einzelnen Eintrag in der Tabelle lesen und vergleichen (Full Table Scan). Bei Millionen Usern dauert das Sekunden.
Regel: Wildcards am Anfang eines Suchwortes (*wort) machen Indexe nutzlos.
2. Der Globstar (**) Operator
In der Shell oder in Config-Files (z. B. .gitignore) gibt es oft den "doppelten Stern" **.
Während *.txt nur Dateien im aktuellen Ordner findet, bedeutet **/test.txt: "Suche die Datei test.txt in diesem Ordner und in allen Unterordnern, egal wie tief das Verzeichnis ist."
Das ist extrem mächtig für Build-Tools (Webpack/Vite), kann aber bei riesigen Projekten die Suche extrem verlangsamen.
3. Wildcards & Security (Traversal Attacks)
Ein gefährlicher Fehler: Ein Web-Service nimmt eine Dateimaske vom User an: "Welche Dateien möchtest du sehen?"
Der User gibt * ein. Der Code macht intern ls /user/data/ + *.
Gibt der User aber ../../etc/* ein, nutzen manche unsaubere Systeme die Wildcard-Logik aus, um Systemdateien zu lesen (Path Traversal). Wildcards sollten daher niemals direkt von ungeprüften User-Eingaben in Systembefehle fließen.
Quick-Check
Cors Wildcard?
Access-Control-Allow-Origin: *. Erlaubt jeder Webseite, deine API abzufragen. Gefährlich, wenn Cookies im Spiel sind (Credentials). Oft sperren Browser Wildcards in Verbindung mitAllow-Credentials.Import *?
Java/Python:import java.util.*. Importiert alle Klassen des Pakets. Bequem, aber kann den Namensraum verschmutzen (Klassen-Kollisionen). Clean Code empfiehlt oft explizite Imports.Wildcard Mask (Cisco)?
Das Gegenteil der Subnet Mask. Subnet255.255.255.0ist Wildcard0.0.0.255. Cisco Router nutzen das in ACLs. Verwirrend für Anfänger.