[{"data":1,"prerenderedAt":903},["ShallowReactive",2],{"blog-de-domain-and-certificate-expiry":3,"blog-index-de":550},{"id":4,"title":5,"body":6,"category":509,"cover":510,"coverAlt":511,"description":512,"draft":513,"extension":514,"faq":515,"image":528,"keywords":529,"meta":538,"navigation":539,"ogTitle":5,"path":540,"published":541,"seo":542,"stem":543,"tldr":544,"updated":541,"__hash__":549},"blog_de\u002Fblog\u002Fdomain-and-certificate-expiry.md","Domain abgelaufen, Website offline: was jetzt passiert",{"type":7,"value":8,"toc":496},"minimark",[9,13,16,28,33,36,44,58,64,70,73,79,93,97,100,103,106,109,113,116,122,128,133,136,202,205,209,212,221,224,227,232,241,245,248,262,265,326,329,333,336,342,348,359,363,366,374,428,435,438,441,452,459,463,488],[10,11,12],"p",{},"Am Freitag lief deine App noch. Am Montag ist da eine ganzseitige\nBrowserwarnung, oder gar nichts mehr, und an deinem Code hat sich nichts\ngeändert. Jemand schickt dir einen Screenshot, und du tippst die Wörter darauf\nin ein Suchfeld: Domain abgelaufen, Website offline.",[10,14,15],{},"Hier ist der Teil, den die meisten Ratschläge dazu falsch machen. Diesen Morgen\nkönnen zwei verschiedene Ausfälle erzeugen, sie laufen auf zwei verschiedenen\nUhren, und der billiger klingende ist der ernste. Ein abgelaufenes Zertifikat\nist laut, peinlich und heute noch zu ersetzen. Eine abgelaufene Domain ist\nzunächst leise, und wenn du sie lange genug liegen lässt, ist deine App nicht\noffline. Sie gehört jemand anderem.",[10,17,18,19,23,24,27],{},"Zwischen deiner App und den Leuten, die sie nutzen, stehen zwei Dinge. Die\n",[20,21,22],"strong",{},"Domain"," ist der Mietvertrag für den Laden: der Name über der Tür und das\nRecht, ihn weiter zu führen. Das ",[20,25,26],{},"Zertifikat"," ist die Zulassung im Fenster,\ndie sagt, dass dieser Laden wirklich der auf dem Schild ist. Du mietest beides.\nBeides verlängert sich an einem Datum, das du einmal gesetzt und seither nicht\nmehr angesehen hast.",[29,30,32],"h2",{"id":31},"was-passiert-wenn-meine-domain-abläuft","Was passiert, wenn meine Domain abläuft?",[10,34,35],{},"Deine App geht offline, und dann läuft eine Uhr in drei Phasen.",[10,37,38,39,43],{},"Bei ",[40,41,42],"code",{},".com"," und den anderen generischen Domains kommt der Fahrplan von der ICANN\nund nicht von deinem Registrar, er ist also weitgehend derselbe, egal wo du den\nNamen gekauft hast.",[10,45,46,49,50,57],{},[20,47,48],{},"Noch deins, schon aus."," Dein Registrar hält den Namen für einen Zeitraum\nseiner Wahl zum normalen Preis verlängerbar, meist ein paar Wochen. Die\n",[51,52,56],"a",{"href":53,"rel":54},"https:\u002F\u002Fwww.icann.org\u002Fresources\u002Fpages\u002Ferrp-2013-02-28-en",[55],"nofollow","Expired Registration Recovery Policy","\nder ICANN verlangt, dass er in dieser Zeit dein DNS abschaltet: mindestens die\nletzten acht Tage, in denen der Name noch verlängerbar ist, darf er nirgendwohin\nmehr zeigen. Deine App geht also lange offline, bevor der Name irgendwohin geht,\nund genau so merken es Inhaber normalerweise.",[10,59,60,63],{},[20,61,62],{},"Gelöscht, und trotzdem rückholbar."," Wenn der Registrar die Registrierung\nendgültig löscht, beginnt eine 30-tägige Redemption Grace Period. Die ICANN\nverlangt sie von fast jedem generischen Registry. Nur du kannst den Namen in\ndieser Zeit zurückholen, nur über den Registrar, der ihn gelöscht hat, und du\nzahlst zusätzlich zur Verlängerung eine Wiederherstellungsgebühr. Die ICANN legt\ndiese Gebühr nicht fest, und sie liegt weit über einer Verlängerung.",[10,65,66,69],{},[20,67,68],{},"Pending Delete."," Etwa fünf Tage, in denen weder du noch dein Registrar\nirgendetwas ausrichten. Danach wird der Name freigegeben.",[10,71,72],{},"Dieselbe Richtlinie sagt, dass dein Registrar dir schreiben muss: zweimal bevor\ndie Registrierung abläuft, ungefähr einen Monat und eine Woche vorher, und\nnochmal innerhalb von fünf Tagen danach. Wenn also je eine Domain von dir ohne\nVorwarnung abgelaufen ist, gehört nicht der Kalender überprüft. Sondern welche\nAdresse in deinem Registrar-Konto hinterlegt ist.",[74,75],"diagram",{"alt":76,"caption":77,"src":78},"Ein waagerechtes Band in vier Teilen, links davon eine Figur. Der erste Teil ist durchgehend gefüllt; eine Linie markiert das Ablaufdatum, danach ist das Band schraffiert. Eine zweite Linie markiert die Löschung, danach ist ein Abschnitt bernsteinfarben mit der Zahl 30 und der nächste rot mit der Zahl 5. Dann endet das Band, gefolgt von einem leeren gestrichelten Platzhalter und drei weiteren Figuren.","Die drei Phasen, nachdem eine Domain abläuft, für .com und die anderen generischen Domains. In den ersten beiden ist der Name rückholbar, nach der dritten gehört er jedem.","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fthe-clock-after-expiry-1600x540.png",[10,80,81,82,85,86,85,89,92],{},"Länderdomains haben ihre eigenen Fahrpläne. ",[40,83,84],{},".io",", ",[40,87,88],{},".co.uk",[40,90,91],{},".de"," und der Rest\nfallen nicht unter diese Richtlinie, und manche davon sind deutlich weniger\nnachsichtig. Wenn deine App auf einer davon läuft, lies die Lifecycle-Seite\ndeines Registrys statt diesen Abschnitt.",[29,94,96],{"id":95},"kann-jemand-meine-domain-übernehmen-nachdem-sie-abgelaufen-ist","Kann jemand meine Domain übernehmen, nachdem sie abgelaufen ist?",[10,98,99],{},"Ja, sobald sie freigegeben ist, und genau das unterscheidet diesen Fall von\nallem anderen in einem Sicherheitsbericht.",[10,101,102],{},"Jeder andere Befund ist ein Fehler in etwas, das dir gehört. Du kannst hingehen\nund ihn beheben. Eine freigegebene Domain verlässt deinen Besitz vollständig:\nder Name ist auf jemand anderen registriert, und alles, was auf deine App\ngezeigt hat, zeigt jetzt auf diese Person. Lesezeichen. Der Link in deiner\nWillkommens-E-Mail. Die Adresse auf der Karte, die du auf einer Konferenz\nverteilt hast. Der Link zum Zurücksetzen des Passworts, den du letzte Woche\nverschickt hast.",[10,104,105],{},"Namen werden auch schnell weggeschnappt. Es gibt Firmen, deren ganzes Produkt\ndarin besteht, eine Domain in der Sekunde anzufragen, in der sie frei wird, und\ndarum bleibt ein Name mit irgendeinem Traffic selten lange unregistriert.",[10,107,108],{},"Du kannst trotzdem versuchen, ihn zurückzukaufen. Du verhandelst dann mit\ndemjenigen, der zuerst da war, zu dem Preis, den er nennt. Ein Zertifikat, das\nheute Morgen abgelaufen ist, lässt sich heute Morgen ersetzen; eine Domain, die\nletzten Monat freigegeben wurde, steht vielleicht gar nicht zum Verkauf.",[29,110,112],{"id":111},"warum-sagt-meine-website-nicht-sicher-wo-gestern-alles-in-ordnung-war","Warum sagt meine Website „nicht sicher\", wo gestern alles in Ordnung war?",[10,114,115],{},"Das können zwei verschiedene Dinge sein, und welches davon du hast, steht auf\ndem Bildschirm.",[10,117,118,121],{},[20,119,120],{},"Ein Hinweiswort in der Adressleiste"," ist dein Browser, der sagt, dass die\nSeite über einfaches HTTP kam, ganz ohne Zertifikat. Deine Seite lädt darunter\nweiter. Nichts ist abgelaufen. Irgendetwas liefert deine Website ohne HTTPS\naus, und das ist ein eigenes Problem, nicht dieses.",[10,123,124,127],{},[20,125,126],{},"Ein abgelaufenes oder nicht vertrauenswürdiges Zertifikat ist kein Hinweis.\nEs ist eine Wand."," Deine App wird durch eine ganze Seite ersetzt: in Chrome der\nHinweis, dass die Verbindung nicht privat ist, in Firefox die Warnung vor einem\nmöglichen Sicherheitsrisiko. Um auf deine Website zu kommen, muss man einen\nErweitert-Knopf finden und sich durch eine Warnung klicken, die die Seite als\nunsicher bezeichnet. Die meisten Besucher tun das nicht.",[74,129],{"alt":130,"caption":131,"src":132},"Zwei Browserfenster. Im ersten wird die Seite normal dargestellt, und in der Adressleiste sitzt ein kleiner durchgestrichener Kreis. Im zweiten gibt es gar keine Seite: eine undurchsichtige Fläche füllt das Fenster und trägt ein Warnzeichen und einen einzelnen Knopf.","Links lädt die Seite weiter, und der Browser kommentiert sie. Rechts ist das Zertifikat gescheitert, und es gibt keine Seite mehr zu kommentieren.","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fa-label-and-a-wall-1600x820.png",[10,134,135],{},"Lies den Code unter der Warnung, bevor du irgendetwas änderst, denn er sagt\ndir, welche Reparatur du brauchst:",[137,138,139,155],"table",{},[140,141,142],"thead",{},[143,144,145,149,152],"tr",{},[146,147,148],"th",{},"Was der Browser ausgibt",[146,150,151],{},"Was es bedeutet",[146,153,154],{},"Was hilft",[156,157,158,177,191],"tbody",{},[143,159,160,171,174],{},[161,162,163,166,167,170],"td",{},[40,164,165],{},"NET::ERR_CERT_DATE_INVALID"," in Chrome, ",[40,168,169],{},"SEC_ERROR_EXPIRED_CERTIFICATE"," in Firefox",[161,172,173],{},"Das Zertifikat ist über sein Enddatum hinaus",[161,175,176],{},"Ein neues Zertifikat",[143,178,179,185,188],{},[161,180,181,184],{},[40,182,183],{},"NET::ERR_CERT_AUTHORITY_INVALID"," in Chrome",[161,186,187],{},"Nichts hat es signiert, dem der Browser vertraut, oder ein Glied der Kette wurde nie installiert",[161,189,190],{},"Ein Zertifikat von einer vertrauenswürdigen Stelle, oder das fehlende Glied. Verlängern hilft nicht",[143,192,193,196,199],{},[161,194,195],{},"Der Hinweis, dass die Uhr des Geräts vor- oder nachgeht",[161,197,198],{},"Das Gerät des Besuchers hat das falsche Datum",[161,200,201],{},"Nichts auf deiner Seite",[10,203,204],{},"Die letzte Zeile lohnt sich, bevor du bei deinem Hoster suchst. Eine einzelne\nPerson, die eine Zertifikatswarnung meldet, kann der Laptop dieser Person sein.",[29,206,208],{"id":207},"warum-ein-https-zertifikat-aufhört-sich-zu-erneuern-ohne-dass-etwas-kaputtgeht","Warum ein HTTPS-Zertifikat aufhört sich zu erneuern, ohne dass etwas kaputtgeht",[10,210,211],{},"Weil die Erneuerung einen Monat vor dem Ablauf passieren soll und eine\ngescheiterte Erneuerung nichts ändert, was du sehen kannst.",[10,213,214,215,220],{},"Die meisten so gebauten Apps werden von einem Hoster ausgeliefert, der\nZertifikate von Let's Encrypt holt und sie für dich erneuert. Let's Encrypt\n",[51,216,219],{"href":217,"rel":218},"https:\u002F\u002Fletsencrypt.org\u002Fdocs\u002Ffaq\u002F",[55],"stellt 90-Tage-Zertifikate aus und empfiehlt, alle 60 Tage zu erneuern",",\nder Vorgang, der deine Website am Leben hält, soll also mit 30 Tagen Restzeit\nfertig sein.",[10,222,223],{},"Um ein neues zu bekommen, muss dein Hoster der Zertifizierungsstelle beweisen,\ndass er deinen Namen weiterhin kontrolliert: entweder indem er unter deiner\nDomain eine angeforderte Datei ausliefert, oder indem er einen Eintrag in dein\nDNS schreibt. Alles, was diesen Beweis kaputt macht, macht die Erneuerung\nkaputt. Ein Umzug deines DNS zu einem anderen Anbieter. Ein Proxy vor der App.\nDen Namen kurz woanders hinzeigen lassen und wieder zurück. Ein CAA-Eintrag, ein\nDNS-Eintrag also, der benennt, welche Stellen für deine Domain ausstellen\ndürfen, und der stillschweigend jede Stelle verbietet, die er nicht nennt.",[10,225,226],{},"Nichts davon legt deine Website lahm. Das Zertifikat, das du schon hast,\nfunktioniert weiter, die App bleibt also online und das Schloss bleibt da,\nwährend die Erneuerung einen Monat lang jeden Tag wieder scheitert, ohne dass\njemand hinsieht.",[74,228],{"alt":229,"caption":230,"src":231},"Zwei übereinanderliegende Spuren über einer Skala mit 0, 60 und 90. Die obere Spur ist die Erneuerung: ein umrandeter Kasten mit einem Haken darin bis Tag 60, danach sechs verteilte Kreuze bis Tag 90. Die untere Spur ist das, was Besucher sehen: durchgehende Akzentfarbe über die ganze Skala, die an Tag 90 zu einem bernsteinfarbenen Block wird.","Die Erneuerung scheitert ab Tag 60, und die Website sieht bis Tag 90 makellos aus. Alles, was es dir gesagt hätte, liegt auf der oberen Spur.","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fnothing-visible-for-30-days-1600x620.png",[10,233,234,235,240],{},"Auch der Brief, der früher kam, bleibt aus.\n",[51,236,239],{"href":237,"rel":238},"https:\u002F\u002Fletsencrypt.org\u002F2025\u002F06\u002F26\u002Fexpiration-notification-service-has-ended",[55],"Let's Encrypt hat seine Ablaufbenachrichtigungen am 4. Juni 2025 eingestellt","\nund es im Januar desselben Jahres angekündigt: die Erneuerung läuft bei den\nmeisten inzwischen automatisch, und Millionen von E-Mail-Adressen an\nAusstellungsdaten gebunden zu halten war ein Datenschutzpreis, den sie lieber\nnicht zahlen wollten. Beide Gründe sind gut. Es hat trotzdem die eine Nachricht\nentfernt, die einen Menschen erreichte, wenn die Automatik aufhörte.",[29,242,244],{"id":243},"erneuern-lovable-oder-vercel-mein-zertifikat-für-mich","Erneuern Lovable oder Vercel mein Zertifikat für mich?",[10,246,247],{},"Solange deine App auf der eigenen Subdomain des Builders läuft, gehören beide\nDaten ihnen, und bei keinem davon kannst du etwas falsch machen.",[10,249,38,250,253,254,257,258,261],{},[40,251,252],{},"deineapp.lovable.app"," oder einer Adresse auf ",[40,255,256],{},"vercel.app"," oder\n",[40,259,260],{},"netlify.app"," besitzt die Plattform den Namen, verlängert die Registrierung und\nstellt das Zertifikat aus und erneuert es. Unsere eigene Domain-Prüfung schlägt\ndiese gar nicht erst nach. Sie meldet, dass die App auf einer verwalteten\nPlattform-Domain läuft und es hier für dich nichts zu überwachen gibt.",[10,263,264],{},"Wenn du eine eigene Domain verbindest, wandert eines der beiden sicher zu dir\nund das andere manchmal:",[137,266,267,280],{},[140,268,269],{},[143,270,271,274,277],{},[146,272,273],{},"Was",[146,275,276],{},"Auf einer Builder-Subdomain",[146,278,279],{},"Auf deiner eigenen Domain",[156,281,282,293,304,315],{},[143,283,284,287,290],{},[161,285,286],{},"Wem der Name gehört",[161,288,289],{},"Der Plattform",[161,291,292],{},"Dir, über deinen Registrar",[143,294,295,298,301],{},[161,296,297],{},"Wer die Registrierung verlängert",[161,299,300],{},"Die Plattform, automatisch",[161,302,303],{},"Du, per Karte",[143,305,306,309,312],{},[161,307,308],{},"Wer das Zertifikat ausstellt und erneuert",[161,310,311],{},"Die Plattform",[161,313,314],{},"Meist weiterhin dein Hoster, automatisch, für deine Domain",[143,316,317,320,323],{},[161,318,319],{},"Wer davon erfährt, wenn es kaputtgeht",[161,321,322],{},"Muss niemand",[161,324,325],{},"Du, wenn etwas hinsieht",[10,327,328],{},"Die Zeile mit der Verlängerung ist die, über die Leute stolpern. Nichts im\nBuilder sagt es an. Du fügst eine Domain hinzu, die App lädt darauf, und du\nbesitzt jetzt einen Kalendereintrag, den du nie gemacht hast.",[29,330,332],{"id":331},"wie-prüfe-ich-jetzt-sofort-beides","Wie prüfe ich jetzt sofort beides?",[10,334,335],{},"Von außen, ohne dich irgendwo anzumelden.",[10,337,338,341],{},[20,339,340],{},"Das Zertifikat."," Öffne deine App, klick auf das Schloss in der Adressleiste,\nöffne die Zertifikatsdetails und lies das Ablaufdatum. Bei einem normalen\n90-Tage-Zertifikat heißt alles über 30 Tage, dass die Erneuerung funktioniert.\nWeniger als 30 Tage heißt, dass die Erneuerung, die längst hätte passieren\nsollen, nicht passiert ist.",[10,343,344,347],{},[20,345,346],{},"Die Domain."," Melde dich bei deinem Registrar an und lies drei Dinge. Das\nAblaufdatum. Ob die Karte hinter der automatischen Verlängerung noch gültig ist,\ndenn automatische Verlängerung mit einer toten Karte ist der häufigste Weg, wie\ndas jemandem passiert, der sich sicher war, dass es nicht passieren kann. Und\ndie E-Mail-Adresse im Konto, denn dorthin geht jede Warnung, die dir zusteht.",[10,349,350,353,354,358],{},[20,351,352],{},"Beides auf einmal."," Unser kostenloser Scan liest beides von außen, zusammen\nmit sieben weiteren Prüfungen, in etwa 20 Sekunden und ohne Konto:\n",[51,355,357],{"href":356},"\u002Fsecurity-scanner","scanne deine App",". Er gibt das Enddatum des Zertifikats aus\nund, bei einer selbst registrierten Domain, das der Registrierung. Auf einer\nBuilder-Subdomain sagt er das, statt dir ein Datum zu erfinden.",[29,360,362],{"id":361},"was-wir-bei-30998-apps-gefunden-haben","Was wir bei 30.998 Apps gefunden haben",[10,364,365],{},"Beide Befunde sind selten, und jeder einzelne davon gehörte jemandem, der eine\neigene Domain verbunden hatte.",[10,367,368,369,373],{},"Zwischen dem 12. und 14. August 2026 haben wir dieselben neun externen Prüfungen\nüber 30.998 aktive Apps laufen lassen, gebaut mit Lovable, Bolt, v0, Replit und\nBase44. Von den Apps, bei denen die jeweilige Prüfung eine Antwort bekam, hatten\n55 von 30.980 eine abgelaufene oder bald ablaufende Domain, und 32 von 30.851\nein abgelaufenes, bald ablaufendes oder nicht vertrauenswürdiges Zertifikat. Die\nvollständigen Zahlen stehen in\n",[51,370,372],{"href":371},"\u002Fresearch\u002Fvibe-coded-app-security-2026","unserem Scan-Bericht",".",[137,375,376,386],{},[140,377,378],{},[143,379,380,383],{},[146,381,382],{},"Befund",[146,384,385],{},"Apps",[156,387,388,396,404,412,420],{},[143,389,390,393],{},[161,391,392],{},"Domain läuft innerhalb von 60 Tagen ab",[161,394,395],{},"54",[143,397,398,401],{},[161,399,400],{},"Domain bereits abgelaufen",[161,402,403],{},"1",[143,405,406,409],{},[161,407,408],{},"Zertifikat läuft innerhalb von 30 Tagen ab",[161,410,411],{},"19",[143,413,414,417],{},[161,415,416],{},"Zertifikat bereits abgelaufen",[161,418,419],{},"5",[143,421,422,425],{},[161,423,424],{},"Zertifikat, dem kein Browser vertraut",[161,426,427],{},"8",[10,429,430,431,434],{},"Das sind 87 Apps, was nach einem Rundungsfehler klingt, bis man fragt, wer sie\nwaren. 1.090 der Scans in diesem Durchlauf liefen auf einer App, deren Inhaber\ndie Domain selbst registriert hatte. ",[20,432,433],{},"Alle 87 waren in dieser Gruppe",", und\nnicht eine einzige App auf einer Builder-Subdomain trug einen der beiden\nBefunde. Unter den Apps, die dieses Problem überhaupt haben können, ist das\nungefähr eine von zwölf.",[10,436,437],{},"Das meiste in dieser Spalte ist eine Warnung und kein Ausfall, und das ist der\nnützliche Teil: jemand hatte noch Zeit. Fünf der Domains waren innerhalb von\nsieben Tagen, und eine war schon weg. Dreizehn der Apps zeigten in dem Moment,\nin dem wir hinsahen, jedem Besucher eine Browserwarnung, fünf mit einem\nabgelaufenen Zertifikat und acht mit einem, dem nichts vertraut.",[10,439,440],{},"Bei beiden geht ein Datum vorbei, während niemand hinsieht, und das ist genau\ndie Art Problem, für die etwas taugt, das stündlich nachsieht.",[10,442,443,447,448,451],{},[51,444,446],{"href":445},"\u002Fpricing","Reeve Monitor"," lässt alle neun Prüfungen stündlich auf bis zu drei\nApps laufen, prüft die Erreichbarkeit alle 60 Sekunden und schickt einen\nMonatsbericht. Bei diesen beiden Befunden tut es etwas, das es sonst nirgends\ntut: es schreibt dir, dass ein Zertifikat oder eine Registrierung ausläuft,\n",[20,449,450],{},"auch wenn sich deine Note nicht geändert hat",". Monitor kostet laut Liste\n€12 im Monat, mit sieben Tagen kostenlos vor der ersten Abrechnung, und die\nPreisseite liegt manchmal unter dem Betrag hier und nie darüber.",[10,453,454,455,373],{},"Monitor sieht zu und mehr nicht. Wenn du zusätzlich eine Kopie deiner Datenbank\nan einem Ort willst, an den dein Builder nicht kommt,\n",[51,456,458],{"href":457},"\u002Fsupabase-backups","dafür gibt es Care, und es deckt Supabase ab",[29,460,462],{"id":461},"was-du-jetzt-tun-solltest","Was du jetzt tun solltest",[464,465,466],"key-takeaways",{},[467,468,469,473,476,479,482,485],"ul",{},[470,471,472],"li",{},"Lies das Ablaufdatum deines Zertifikats über das Schloss in der Adressleiste. Mehr als 30 Tage heißt, dass die Erneuerung funktioniert.",[470,474,475],{},"Melde dich bei deinem Registrar an und lies das Ablaufdatum und die Karte hinter der automatischen Verlängerung. Eine tote Karte ist, woran automatische Verlängerung scheitert.",[470,477,478],{},"Trag beide Daten in den Kalender ein, den du wirklich liest, jeweils einen Monat vorher.",[470,480,481],{},"Wenn schon eine Warnung zu sehen ist, lies zuerst den Code darunter. Ein Datumsfehler braucht ein neues Zertifikat; ein Fehler bei der Zertifizierungsstelle braucht ein anderes, und Verlängern ändert daran nichts.",[470,483,484],{},"Wenn eine Domain schon abgelaufen ist, verlängere sie heute. Jede Phase danach kostet mehr als die davor, und nach der Redemption Grace Period steht sie dir nicht mehr zur Verlängerung offen.",[470,486,487],{},"Wenn du noch auf der Subdomain deines Builders bist, gehört dir keines von beiden. Sie kommen mit deiner eigenen Domain, am selben Tag.",[10,489,490,491,495],{},"Keines von beiden ist ein Fehler, den jemand in deiner App gemacht hat, und\ndarum lässt man sie so leicht von der Liste. Setz sie drauf. Wenn du lieber\nalles auf einmal durchgehst: die\n",[51,492,494],{"href":493},"\u002Fchecklist","Sicherheits-Checkliste in 10 Minuten"," deckt alle neun Prüfungen in\nder Reihenfolge ab, in der sie sich lohnen.",{"title":497,"searchDepth":498,"depth":498,"links":499},"",3,[500,502,503,504,505,506,507,508],{"id":31,"depth":501,"text":32},2,{"id":95,"depth":501,"text":96},{"id":111,"depth":501,"text":112},{"id":207,"depth":501,"text":208},{"id":243,"depth":501,"text":244},{"id":331,"depth":501,"text":332},{"id":361,"depth":501,"text":362},{"id":461,"depth":501,"text":462},"Sicherheitsgrundlagen","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcover-1200x630.png","Zwei hohe Urkundenkarten, jede mit einem Siegel am Fuß. Die linke leuchtet in der Akzentfarbe, die rechte liegt im Schatten und ist entfärbt.","Deine Domain ist abgelaufen und deine Website ist offline. Welche Frist jetzt läuft, warum das Zertifikat das kleinere Problem ist, und wie du beides prüfst.",false,"md",[516,518,520,523,525],{"q":32,"a":517},"Zuerst geht deine App offline, und der Name bleibt danach noch eine Weile rückholbar. Bei .com und den anderen generischen Domains hält dein Registrar sie für einen Zeitraum seiner Wahl zum normalen Preis verlängerbar, und die ICANN verlangt, dass dein DNS mindestens die letzten acht Tage dieses Zeitraums nicht mehr funktioniert. Nachdem der Registrar sie gelöscht hat, beginnt eine 30-tägige Redemption Grace Period, in der nur du sie wiederherstellen kannst, und nur über diesen Registrar, gegen Gebühr. Danach etwa fünf Tage Pending Delete, in denen niemand etwas tun kann, und dann ist der Name für den Nächsten frei.",{"q":96,"a":519},"Ja, sobald sie die Rückhol- und Pending-Delete-Phasen durchlaufen hat und freigegeben wurde. Ab da wird der Name nach dem Prinzip „wer zuerst kommt\" registriert, und es gibt Firmen, deren ganzes Produkt darin besteht, einen Namen in der Sekunde anzufragen, in der er frei wird. Alles, was auf deine App gezeigt hat, zeigt weiter auf den Namen: Lesezeichen, der Link in deiner Willkommens-E-Mail, die Adresse in deinem App-Store-Eintrag. Du kannst versuchen, ihn zurückzukaufen, zu dem Preis, den der neue Inhaber nennt.",{"q":521,"a":522},"Warum sagt meine Website heute „nicht sicher\", wo gestern alles in Ordnung war?","Das sind zwei verschiedene Probleme, und der Bildschirm sagt dir, welches du hast. Ein graues Hinweiswort in der Adressleiste, während deine Seite darunter weiter lädt, heißt: die Seite kam über einfaches HTTP, und es war überhaupt kein Zertifikat beteiligt. Ein abgelaufenes oder nicht vertrauenswürdiges Zertifikat ist kein Hinweiswort: es ersetzt deine App durch eine ganzseitige Warnung, durch die der Besucher erst hindurchklicken muss.",{"q":244,"a":524},"Auf ihrer eigenen Subdomain gehört ihnen alles, und für dich gibt es nichts zu überwachen. Sobald du eine eigene Domain verbindest, gehört die Registrierung von da an dir, und das Zertifikat wird meist weiterhin von deinem Hoster ausgestellt und erneuert. Diese Aufteilung ist der Grund, warum eine kaputte Erneuerung so leicht zu übersehen ist: niemand sagt dir, dass es für dich erledigt wurde, und es hört auf, erledigt zu werden, ohne dass ein Fehler bei irgendwem ankommt.",{"q":526,"a":527},"Wie früh sollte ich gewarnt werden?","Jeweils einen Monat, denn ungefähr da wird beides ohne Drama behebbar. Ein normales Zertifikat wird etwa 30 Tage vor Ablauf erneuert, ein Zertifikat mit weniger als 30 Tagen Restlaufzeit sagt dir also schon, dass die Erneuerung nicht funktioniert hat. Bei einer Domain lohnt es sich, das Datum zu erwischen, bevor die Registrierung überhaupt abläuft, denn jede Phase danach kostet mehr als die davor.","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcard-800x500.png",[530,531,532,533,534,535,536,537],"domain abgelaufen website offline","ssl zertifikat abgelaufen","website nicht sicher meldung","domain ablaufdatum prüfen","was passiert wenn die domain abläuft","kann jemand meine domain übernehmen","https zertifikat wird nicht erneuert","domain rechtzeitig verlängern",{},true,"\u002Fblog\u002Fdomain-and-certificate-expiry","2026-09-22",{"title":5,"description":512},"blog\u002Fdomain-and-certificate-expiry",[545,546,547,548],"Wenn deine Domain abgelaufen ist und deine Website offline, läuft eine Uhr. Bei .com und den meisten generischen Domains sind das ein paar Wochen zum normalen Preis, dann 30 Tage Rückkauf gegen Gebühr, dann etwa fünf Tage, in denen gar nichts mehr geht.","Ein abgelaufenes Zertifikat ist laut und du kannst es heute ersetzen. Eine freigegebene Domain gehört dem Nächsten, der sie registriert, samt jedem Link, den je jemand auf deine App gesetzt hat.","Über die Domain muss dein Registrar dich warnen, und er tut es. Über das Zertifikat muss dich niemand warnen, und Let's Encrypt hat seine eigenen Ablauf-E-Mails am 4. Juni 2025 eingestellt.","Auf einer Builder-Subdomain gehört dir keines von beidem: die Plattform besitzt Name und Zertifikat und erneuert beides. Deins werden sie an dem Tag, an dem du eine eigene Domain verbindest.","iu3uYjR-KsBH-TgRIgIbS4aIVtC4xmL77-bcifIOS8Q",[551,557,563,569,575,581,587,593,599,605,611,617,623,630,636,642,647,653,659,665,666,672,678,684,690,696,702,708,714,720,726,732,738,744,750,756,762,768,774,780,786,792,798,804,810,816,822,828,834,840,846,852,858,864,869,875,881,887,892,898],{"path":552,"title":553,"description":554,"published":555,"category":509,"image":556,"draft":513},"\u002Fblog\u002Fbase44-security-scan","Base44 Security Scan: das, was nur er sehen kann","Der Base44 Security Scan prüft sieben Arten von Problemen von innen. Hier ist die Hälfte, die er liest und sonst niemand, und die Hälfte, die er nie ansieht.","2026-10-10","\u002Fblog\u002Fbase44-security-scan\u002Fcard-800x500.png",{"path":558,"title":559,"description":560,"published":561,"category":509,"image":562,"draft":513},"\u002Fblog\u002Fapi-key-leaked-what-to-do","Dein API-Key wurde geleakt. Die richtige Reihenfolge","Ein API-Key wurde geleakt und du weißt nicht, was zuerst zu tun ist. Nicht jeder Key im Frontend ist ein Leck, und die Reihenfolge zählt mehr als das Tempo.","2026-10-09","\u002Fblog\u002Fapi-key-leaked-what-to-do\u002Fcard-800x500.png",{"path":564,"title":565,"description":566,"published":567,"category":509,"image":568,"draft":513},"\u002Fblog\u002Finfinite-recursion-in-policy-for-relation","\"Infinite recursion detected in policy\" ohne RLS abzuschalten","\"Infinite recursion detected in policy for relation\" heißt: Deine Policy hat die Tabelle gefragt, die sie schützt. So brichst du den Kreis.","2026-10-08","\u002Fblog\u002Finfinite-recursion-in-policy-for-relation\u002Fcard-800x500.png",{"path":570,"title":571,"description":572,"published":573,"category":509,"image":574,"draft":513},"\u002Fblog\u002Fno-api-key-found-in-request","\"No API key found in request\" in Supabase, und die falsche Lösung","\"No API key found in request\" heißt, deine Supabase-Anfrage kam ohne Schlüssel an. Die meisten Antworten zeigen stattdessen auf deine Datenbankregeln.","2026-10-07","\u002Fblog\u002Fno-api-key-found-in-request\u002Fcard-800x500.png",{"path":576,"title":577,"description":578,"published":579,"category":509,"image":580,"draft":513},"\u002Fblog\u002Fis-base44-safe","Ist Base44 sicher? Was 5.442 echte Base44-Apps zeigten","Ist Base44 sicher? Wir haben 5.442 laufende Base44-Apps mit neun Checks geprüft. Fast alle bekamen ein B, aus Gründen, die der Inhaber nie gewählt hat.","2026-10-06","\u002Fblog\u002Fis-base44-safe\u002Fcard-800x500.png",{"path":582,"title":583,"description":584,"published":585,"category":509,"image":586,"draft":513},"\u002Fblog\u002Fmove-a-secret-to-an-edge-function","API-Schlüssel verstecken: ab in eine Supabase Edge Function","Einen API-Schlüssel verstecken heißt, ihn aus dem Browser zu nehmen. Eine Supabase Edge Function ist der kleinste Ort dafür, und zwei Schritte zählen mehr.","2026-10-05","\u002Fblog\u002Fmove-a-secret-to-an-edge-function\u002Fcard-800x500.png",{"path":588,"title":589,"description":590,"published":591,"category":509,"image":592,"draft":513},"\u002Fblog\u002Fenv-file-exposed-on-your-server","Ist deine .env-Datei öffentlich? Zwölf Pfade zum Prüfen","Ist deine .env-Datei auf deinem eigenen Webserver öffentlich? Zwölf Adressen sagen es dir, und ein Treffer heißt: alles darin ist längst öffentlich.","2026-10-04","\u002Fblog\u002Fenv-file-exposed-on-your-server\u002Fcard-800x500.png",{"path":594,"title":595,"description":596,"published":597,"category":509,"image":598,"draft":513},"\u002Fblog\u002Fis-v0-safe","v0-Sicherheit: alle 1.790 gescannten v0-Apps bekamen ein A","v0-Sicherheit, gemessen an 1.790 laufenden v0-Apps: Jede bekam ein A. Nur 17 nannten eine Datenbank, und genau das misst das A vor allem.","2026-10-03","\u002Fblog\u002Fis-v0-safe\u002Fcard-800x500.png",{"path":600,"title":601,"description":602,"published":603,"category":509,"image":604,"draft":513},"\u002Fblog\u002Fis-bolt-safe","Ist Bolt sicher? Was 1.123 echte Bolt-Apps zeigten","Ist Bolt sicher? Wir haben 1.123 laufende Bolt-Apps mit neun Checks geprüft. Das Hosting war sauber. Die Funde waren Schlüssel und offene Tabellen in den Apps.","2026-10-02","\u002Fblog\u002Fis-bolt-safe\u002Fcard-800x500.png",{"path":606,"title":607,"description":608,"published":609,"category":509,"image":610,"draft":513},"\u002Fblog\u002Fis-supabase-down-or-your-app","Ist Supabase down oder liegt es an deiner App? So erkennst du es","Ist Supabase down oder liegt es an deiner App? Ein pausiertes Projekt, eine volle Datenbank und ein eigener Fehler sehen gleich aus. Vier Prüfungen helfen.","2026-10-01","\u002Fblog\u002Fis-supabase-down-or-your-app\u002Fcard-800x500.png",{"path":612,"title":613,"description":614,"published":615,"category":509,"image":616,"draft":513},"\u002Fblog\u002Fdoes-supabase-encrypt-my-data","Verschlüsselt Supabase meine Daten? Ja. Wovor das schützt","Verschlüsselt Supabase Daten? Ja: AES-256 im Ruhezustand, TLS bei der Übertragung, SOC 2 und ISO 27001. Was jedes abdeckt und welches Leck keines stoppt.","2026-09-30","\u002Fblog\u002Fdoes-supabase-encrypt-my-data\u002Fcard-800x500.png",{"path":618,"title":619,"description":620,"published":621,"category":509,"image":622,"draft":513},"\u002Fblog\u002Fsupabase-free-plan-limits","Supabase Gratis-Tarif: die Limits und was an jedem passiert","Die Limits des Supabase-Gratis-Tarifs: 500 MB Datenbank, 5 GB Egress und keine Backups. Was an jeder Grenze passiert und was $25 für Pro ändern.","2026-09-29","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fcard-800x500.png",{"path":624,"title":625,"description":626,"published":627,"category":628,"image":629,"draft":513},"\u002Fblog\u002Ftest-your-supabase-backup","Teste dein Supabase-Backup, bevor du es brauchst","So testest du dein Supabase-Backup: in ein Übungsprojekt einspielen, Zeilen zählen, anmelden und die Zeile suchen, die einer abgeschnittenen Datei fehlt.","2026-09-28","Backups","\u002Fblog\u002Ftest-your-supabase-backup\u002Fcard-800x500.png",{"path":631,"title":632,"description":633,"published":634,"category":628,"image":635,"draft":513},"\u002Fblog\u002Fsupabase-backup-github-action","Kostenloses Supabase-Backup per GitHub Action, mit Haken","Eine Supabase-Backup-GitHub-Action kostet nichts und passt für viele Apps. Der Workflow, der richtige Connection String und das Egress pro Lauf.","2026-09-27","\u002Fblog\u002Fsupabase-backup-github-action\u002Fcard-800x500.png",{"path":637,"title":638,"description":639,"published":640,"category":628,"image":641,"draft":513},"\u002Fblog\u002Fdownload-your-supabase-backup","Warum du dein Supabase-Backup nicht herunterladen kannst","Dein Supabase-Backup kannst du auf aktuellen Projekten nicht herunterladen, weil die Tageskopie physisch ist. Wie du es prüfst und selbst eine Kopie hältst.","2026-09-26","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fcard-800x500.png",{"path":643,"title":644,"description":645,"published":640,"category":509,"image":646,"draft":513},"\u002Fblog\u002Fsupabase-permission-denied-for-table","Supabase \"permission denied for table\": der fehlende Grant","Ab 30. Oktober antwortet eine neue Supabase-Tabelle mit \"permission denied for table\", bis du Zugriff erteilst. Der Grant aus der E-Mail ist die halbe Lösung.","\u002Fblog\u002Fsupabase-permission-denied-for-table\u002Fcard-800x500.png",{"path":648,"title":649,"description":650,"published":651,"category":509,"image":652,"draft":513},"\u002Fblog\u002Fopen-api-endpoint-exposed","Ist ein offener API-Endpunkt ein Sicherheitsproblem? Sieh ins JSON","Dein Scan hat einen offenen API-Endpunkt gemeldet. Ob das zählt, hängt davon ab, was zurückkam, und die meisten hier gehörten der Plattform.","2026-09-25","\u002Fblog\u002Fopen-api-endpoint-exposed\u002Fcard-800x500.png",{"path":654,"title":655,"description":656,"published":657,"category":509,"image":658,"draft":513},"\u002Fblog\u002Flovable-security-scan","Lovable Security Scan: das Eine, was er nicht beweist","Lovable Security Scan: was Quick Scan und Deep Scan prüfen, wann welcher läuft, und das Eine, was kein Scan von innen beweisen kann.","2026-09-24","\u002Fblog\u002Flovable-security-scan\u002Fcard-800x500.png",{"path":660,"title":661,"description":662,"published":663,"category":628,"image":664,"draft":513},"\u002Fblog\u002Fsupabase-backup-auth-users","Warum in deinem Supabase-Dump keine Nutzer stehen","Führe supabase db dump allein aus und du bekommst die Form deiner Datenbank und keine einzige Zeile, und das auth-Schema mit deinen Nutzern fehlt ganz.","2026-09-23","\u002Fblog\u002Fsupabase-backup-auth-users\u002Fcard-800x500.png",{"path":540,"title":5,"description":512,"published":541,"category":509,"image":528,"draft":513},{"path":667,"title":668,"description":669,"published":670,"category":509,"image":671,"draft":513},"\u002Fblog\u002Fis-lovable-safe","Ist Lovable sicher? Was 18.554 echte Lovable-Apps zeigten","Ist Lovable sicher? Wir haben 18.554 laufende Lovable-Apps mit neun Checks geprüft. Die Plattform war die sauberste von fünf. Die Funde saßen in den Apps.","2026-09-21","\u002Fblog\u002Fis-lovable-safe\u002Fcard-800x500.png",{"path":673,"title":674,"description":675,"published":676,"category":509,"image":677,"draft":513},"\u002Fblog\u002Fvibe-coded-app-security-checklist","Die Sicherheits-Checkliste für Vibe-Coding, in neun Prüfungen","Eine Sicherheits-Checkliste für Vibe-Coding mit neun Punkten, die jeder von außen an deiner Live-App nachprüfen kann, jeder mit einem Test in einer Zeile.","2026-09-20","\u002Fblog\u002Fvibe-coded-app-security-checklist\u002Fcard-800x500.png",{"path":679,"title":680,"description":681,"published":682,"category":509,"image":683,"draft":513},"\u002Fblog\u002Fstripe-secret-key-in-frontend","Ein geheimer Stripe-Schlüssel im Frontend kann Geld bewegen","Ein geheimer Stripe-Schlüssel im Frontend kann erstatten, abbuchen und jeden Kundendatensatz lesen, den du hast. Dein pk_live_-Schlüssel gehört dorthin.","2026-09-19","\u002Fblog\u002Fstripe-secret-key-in-frontend\u002Fcard-800x500.png",{"path":685,"title":686,"description":687,"published":688,"category":509,"image":689,"draft":513},"\u002Fblog\u002Fvite-and-next-public-env-vars","Vite-Env-Variablen offengelegt: der Präfix heißt veröffentlichen","Vite-Env-Variablen offengelegt: Deine App hat getan, was der Präfix verlangt. VITE_ und NEXT_PUBLIC_ heißen veröffentlichen, und die KI kannte den Preis nie.","2026-09-18","\u002Fblog\u002Fvite-and-next-public-env-vars\u002Fcard-800x500.png",{"path":691,"title":692,"description":693,"published":694,"category":509,"image":695,"draft":513},"\u002Fblog\u002Fbase44-source-maps","Base44-Sicherheit: was ein Scan meldet und was du ändern kannst","Base44-Sicherheit auf 5.438 gescannten Apps: Drei Befunde auf fast jeder gehören der Plattform, die Source Map ist das Base44-Badge, und deine Liste ist kurz.","2026-09-17","\u002Fblog\u002Fbase44-source-maps\u002Fcard-800x500.png",{"path":697,"title":698,"description":699,"published":700,"category":509,"image":701,"draft":513},"\u002Fblog\u002Fis-cursor-ai-safe","Ist Cursor AI sicher? Editor, Code und die App, die du veröffentlichst","Ist Cursor AI sicher? Drei Fragen in einer Suche: was Cursor behält, was sein Code falsch macht und ob deine veröffentlichte App offen steht.","2026-09-16","\u002Fblog\u002Fis-cursor-ai-safe\u002Fcard-800x500.png",{"path":703,"title":704,"description":705,"published":706,"category":509,"image":707,"draft":513},"\u002Fblog\u002Fis-replit-safe","Ist Replit sicher? Was wir in 3.042 Replit-Apps gefunden haben","Ist Replit sicher? Wir haben 3.042 laufende Replit-Apps mit neun externen Checks geprüft. Die Funde saßen in der veröffentlichten App, nicht im Hosting.","2026-09-15","\u002Fblog\u002Fis-replit-safe\u002Fcard-800x500.png",{"path":709,"title":710,"description":711,"published":712,"category":628,"image":713,"draft":513},"\u002Fblog\u002Fsupabase-storage-backup","Supabase Storage Backup: deine Datenbankkopie hat keine Dateien","Ein Supabase Storage Backup ist eine eigene Aufgabe. Datenbank-Backups enthalten die Liste deiner Dateien und keine davon, also bleibt jeder Upload kaputt.","2026-09-14","\u002Fblog\u002Fsupabase-storage-backup\u002Fcard-800x500.png",{"path":715,"title":716,"description":717,"published":718,"category":628,"image":719,"draft":513},"\u002Fblog\u002Fsupabase-point-in-time-recovery","Supabase Point-in-Time Recovery: Kosten und Grenzen","Supabase Point-in-Time Recovery spult deine Datenbank auf jede Sekunde der letzten Woche zurück. $100 im Monat zusätzlich zu Pro, und nur die Datenbank.","2026-09-13","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcard-800x500.png",{"path":721,"title":722,"description":723,"published":724,"category":628,"image":725,"draft":513},"\u002Fblog\u002Fsupabase-project-paused-recover","Supabase-Projekt pausiert? Deine Daten sind noch da","Supabase hat dein Projekt nach einer Woche ohne Aktivität pausiert. Gelöscht ist nichts, Wiederherstellen steht neben dem Namen, und du hast ein Jahr.","2026-09-12","\u002Fblog\u002Fsupabase-project-paused-recover\u002Fcard-800x500.png",{"path":727,"title":728,"description":729,"published":730,"category":509,"image":731,"draft":513},"\u002Fblog\u002Fsafest-ai-app-builder","Welcher KI-App-Builder ist am sichersten? 30.998 Apps im Test","Welcher KI-App-Builder ist am sichersten? Wir haben 30.998 aktive Apps von Lovable, Base44, Replit, v0 und Bolt gescannt. Der Builder entscheidet das nicht.","2026-09-11","\u002Fblog\u002Fsafest-ai-app-builder\u002Fcard-800x500.png",{"path":733,"title":734,"description":735,"published":736,"category":509,"image":737,"draft":513},"\u002Fblog\u002Fenable-rls-on-every-supabase-table","Row Level Security für jede Supabase-Tabelle aktivieren und prüfen","Row Level Security in Supabase ohne Policy sperrt eine Tabelle komplett. Eine Policy ohne den Schalter bringt gar nichts. Hier ist das SQL, und der Test.","2026-09-10","\u002Fblog\u002Fenable-rls-on-every-supabase-table\u002Fcard-800x500.png",{"path":739,"title":740,"description":741,"published":742,"category":509,"image":743,"draft":513},"\u002Fblog\u002Fsupabase-rls-disabled-in-public","Supabase \"RLS disabled in public\": was die Warnung übersieht","Supabase meldet \"RLS disabled in public\" als Fehler. Zur Lese-Policy, die deine Tabelle genauso offen lässt, sagt der Advisor gar nichts.","2026-09-09","\u002Fblog\u002Fsupabase-rls-disabled-in-public\u002Fcard-800x500.png",{"path":745,"title":746,"description":747,"published":748,"category":509,"image":749,"draft":513},"\u002Fblog\u002Frotate-supabase-service-role-key","Geleakten Supabase-service_role-Schlüssel richtig tauschen","Supabase sagt: erst das Leck schließen. Andere Anleitungen: sofort tauschen. Was richtig ist, hängt davon ab, wohin dein service_role-Schlüssel gelangt ist.","2026-09-08","\u002Fblog\u002Frotate-supabase-service-role-key\u002Fcard-800x500.png",{"path":751,"title":752,"description":753,"published":754,"category":509,"image":755,"draft":513},"\u002Fblog\u002Fvibe-coding-security-scanners-compared","Vibe-Coding-Security-Scanner im Vergleich, unserer eingeschlossen","Der beste Vibe-Coding-Security-Scanner hängt an drei Fragen, die keine Funktionsliste beantwortet. Zehn Tools im Vergleich, mit Preisen und unseren Lücken.","2026-09-07","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fcard-800x500.png",{"path":757,"title":758,"description":759,"published":760,"category":509,"image":761,"draft":513},"\u002Fblog\u002Fsupabase-security-checker","Supabase Security Checker: die fünf Prüfungen selbst machen","Ein Supabase Security Checker liest deine veröffentlichte App statt deiner Projekteinstellungen. Hier sind die fünf Prüfungen und wie du jede selbst ausführst.","2026-09-06","\u002Fblog\u002Fsupabase-security-checker\u002Fcard-800x500.png",{"path":763,"title":764,"description":765,"published":766,"category":509,"image":767,"draft":513},"\u002Fblog\u002Fvibe-coding-security-scanner","Vibe-Coding-Security-Scanner: was ein URL-Scan übersieht","Ein Vibe-Coding-Security-Scanner liest deine laufende App von außen. Was das abdeckt, die vier Dinge, die er nicht sehen kann, und wie du das Ergebnis liest.","2026-09-05","\u002Fblog\u002Fvibe-coding-security-scanner\u002Fcard-800x500.png",{"path":769,"title":770,"description":771,"published":772,"category":509,"image":773,"draft":513},"\u002Fblog\u002Fmissing-security-headers","Fehlende Sicherheitsheader: wann sie wirklich zählen","Fehlende Sicherheitsheader ist unser häufigster Befund. Wogegen sie schützen, und wann sie die unwichtigste Zeile in deinem Bericht sind.","2026-09-04","\u002Fblog\u002Fmissing-security-headers\u002Fcard-800x500.png",{"path":775,"title":776,"description":777,"published":778,"category":509,"image":779,"draft":513},"\u002Fblog\u002Fopenai-api-key-exposed-in-frontend","Dein OpenAI-API-Schlüssel liegt im Frontend. Tausch ihn aus.","Ein OpenAI-API-Schlüssel im Frontend lässt sich an keine Domain binden. Tausch ihn heute, leg den Aufruf hinter deinen Server und begrenze das Budget.","2026-09-03","\u002Fblog\u002Fopenai-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":781,"title":782,"description":783,"published":784,"category":509,"image":785,"draft":513},"\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps","API-Schlüssel im Frontend: was 30.998 Apps wirklich ausliefern","Ein API-Schlüssel im Frontend ist meistens ein Google-Maps-Schlüssel. Wir haben 30.998 aktive Vibe-Coding-Apps gescannt und gezählt, was wirklich austritt.","2026-09-02","\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps\u002Fcard-800x500.png",{"path":787,"title":788,"description":789,"published":790,"category":628,"image":791,"draft":513},"\u002Fblog\u002Fsupabase-backup-tools-compared","Supabase-Backup-Tools im Vergleich, unseres eingeschlossen","Vier Arten von Supabase-Backup-Tool, was jedes wirklich kopiert und wann eine kostenlose GitHub Action jeden Anbieter schlägt, uns eingeschlossen.","2026-09-01","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcard-800x500.png",{"path":793,"title":794,"description":795,"published":796,"category":509,"image":797,"draft":513},"\u002Fblog\u002Freplit-secrets-explained","Secrets in Replit nutzen, und was trotzdem veröffentlicht wird","Secrets in Replit nutzen: anlegen, auslesen und die zwei Gründe beheben, warum undefined zurückkommt. Dazu die Schlüssel, die das Werkzeug nicht schützt.","2026-08-31","\u002Fblog\u002Freplit-secrets-explained\u002Fcard-800x500.png",{"path":799,"title":800,"description":801,"published":802,"category":628,"image":803,"draft":513},"\u002Fblog\u002Fback-up-supabase-free-tier","Supabase Gratis-Tarif: Backup ohne Terminal selbst machen","Im Supabase Gratis-Tarif gibt es keine Backups, die Kopie musst du selbst machen. Wie das im Dashboard geht und was der CSV-Weg auslässt.","2026-08-30","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcard-800x500.png",{"path":805,"title":806,"description":807,"published":808,"category":509,"image":809,"draft":513},"\u002Fblog\u002Fis-supabase-secure","Ist Supabase sicher? Ja. Dein Projekt ist eine eigene Frage","Ist Supabase sicher? Die Plattform ist auditiert, verschlüsselt und pentestet. Supabase schreibt selbst auf, wo das aufhört und deine Einstellungen anfangen.","2026-08-29","\u002Fblog\u002Fis-supabase-secure\u002Fcard-800x500.png",{"path":811,"title":812,"description":813,"published":814,"category":509,"image":815,"draft":513},"\u002Fblog\u002Fwhere-to-find-supabase-api-keys","Wo du deine Supabase API-Keys findest: anon, service_role, URL","Projekt-URL, anon-Schlüssel und service_role-Schlüssel liegen auf einer Seite im Dashboard. Wo sie ist, und welcher der vier Werte in deine App gehört.","2026-08-28","\u002Fblog\u002Fwhere-to-find-supabase-api-keys\u002Fcard-800x500.png",{"path":817,"title":818,"description":819,"published":820,"category":509,"image":821,"draft":513},"\u002Fblog\u002Fnew-row-violates-row-level-security-policy","New row violates row-level security policy in Supabase: was jetzt?","\"New row violates row-level security policy\" heißt, Supabase hat einen Schreibvorgang abgelehnt. Die schnelle Lösung öffnet die Tabelle wieder für alle.","2026-08-27","\u002Fblog\u002Fnew-row-violates-row-level-security-policy\u002Fcard-800x500.png",{"path":823,"title":824,"description":825,"published":826,"category":509,"image":827,"draft":513},"\u002Fblog\u002Fcors-wildcard-security-risk","Ist eine CORS-Wildcard ein Sicherheitsrisiko? Meist nicht.","Ist eine CORS-Wildcard ein Sicherheitsrisiko? Meist ist sie die Voreinstellung deines Builders und gibt nichts preis, was dein Server nicht ohnehin herausgab.","2026-08-26","\u002Fblog\u002Fcors-wildcard-security-risk\u002Fcard-800x500.png",{"path":829,"title":830,"description":831,"published":832,"category":628,"image":833,"draft":513},"\u002Fblog\u002Fsupabase-branching-is-not-a-backup","Supabase Branching ist kein Backup. Es geht nur vorwärts.","Warum Supabase Branching kein Backup ist: Ein Branch startet ohne deine Daten, und ein Merge bringt nur das Schema. Wofür es gut ist und was stattdessen hilft.","2026-08-25","\u002Fblog\u002Fsupabase-branching-is-not-a-backup\u002Fcard-800x500.png",{"path":835,"title":836,"description":837,"published":838,"category":628,"image":839,"draft":513},"\u002Fblog\u002Fhow-to-restore-a-supabase-backup","Supabase-Backup wiederherstellen, und was danach kaputt ist","Wie du ein Supabase-Backup aus dem Dashboard oder aus einer Dump-Datei wiederherstellst, was ersetzt wird und warum die App danach kaputt sein kann.","2026-08-24","\u002Fblog\u002Fhow-to-restore-a-supabase-backup\u002Fcard-800x500.png",{"path":841,"title":842,"description":843,"published":844,"category":509,"image":845,"draft":513},"\u002Fblog\u002Fsupabase-storage-bucket-public","Dein Supabase-Storage-Bucket ist öffentlich. Ist das ein Problem?","Ein öffentlicher Supabase-Storage-Bucket heißt: Wer die URL einer Datei hat, kann sie öffnen. Er heißt nicht, dass jemand den Inhalt auflisten darf.","2026-08-23","\u002Fblog\u002Fsupabase-storage-bucket-public\u002Fcard-800x500.png",{"path":847,"title":848,"description":849,"published":850,"category":509,"image":851,"draft":513},"\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend","Ist ein Google-API-Schlüssel im Frontend ein Problem?","Ein Google-API-Schlüssel im Frontend ist der Fund unseres Scanners Nummer eins, und meistens unbedenklich. Eine kostenlose Einstellung entscheidet darüber.","2026-08-22","\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":853,"title":854,"description":855,"published":856,"category":628,"image":857,"draft":513},"\u002Fblog\u002Fai-agent-deleted-my-database","Ein KI-Agent hat meine Supabase-Daten gelöscht. Was hole ich zurück?","Ein KI-Agent hat Daten aus deiner Datenbank gelöscht. Was du zurückholst, stand schon vorher fest, und die nächsten Minuten entscheiden über den Rest.","2026-08-21","\u002Fblog\u002Fai-agent-deleted-my-database\u002Fcard-800x500.png",{"path":859,"title":860,"description":861,"published":862,"category":509,"image":863,"draft":513},"\u002Fblog\u002Fcan-anyone-read-your-supabase-database","Kann jeder deine Supabase-Datenbank lesen? 3.680 Apps im Test","Kann jeder deine Supabase-Datenbank ohne Login lesen? Wir haben 30.998 aktive Apps aus KI-Buildern gescannt und gemessen, wie oft die Antwort ja lautet.","2026-08-18","\u002Fblog\u002Fcan-anyone-read-your-supabase-database\u002Fcard-800x500.png",{"path":865,"title":866,"description":867,"published":862,"category":509,"image":868,"draft":513},"\u002Fblog\u002Fsource-maps-exposed-in-production","Source-Maps öffentlich: deine App veröffentlicht ihren Quellcode","Eine öffentliche Source-Map lässt jeden den Originalcode deiner App lesen, Kommentare inklusive. Der 30-Sekunden-Check, und was wirklich zählt.","\u002Fblog\u002Fsource-maps-exposed-in-production\u002Fcard-800x500.png",{"path":870,"title":871,"description":872,"published":873,"category":509,"image":874,"draft":513},"\u002Fblog\u002Fsupabase-new-api-keys","Supabases neue API-Schlüssel: welcher gehört in deine App?","Supabase hat anon und service_role durch öffentliche und geheime Schlüssel ersetzt. Welcher gehört in deine App, und welcher nie?","2026-08-12","\u002Fblog\u002Fsupabase-new-api-keys\u002Fcard-800x500.png",{"path":876,"title":877,"description":878,"published":879,"category":628,"image":880,"draft":513},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","Sichert Supabase meine Datenbank? Das hängt von deinem Tarif ab.","Sichert Supabase deine Datenbank? Auf bezahlten Tarifen täglich, im Gratis-Tarif gar nicht. So findest du heraus, was du hast und was es nicht abdeckt.","2026-08-11","\u002Fblog\u002Fdoes-supabase-back-up-my-database\u002Fcard-800x500.png",{"path":882,"title":883,"description":884,"published":885,"category":509,"image":886,"draft":513},"\u002Fblog\u002Fsupabase-rls-on-but-table-still-public","Supabase Row Level Security ist an. Die Tabelle ist trotzdem offen.","Supabase Row Level Security anzuschalten schützt keine Tabelle. Erst deine Policies tun das, und die, die deine App repariert hat, lässt oft alle herein.","2026-08-10","\u002Fblog\u002Fsupabase-rls-on-but-table-still-public\u002Fcard-800x500.png",{"path":888,"title":889,"description":890,"published":885,"category":628,"image":891,"draft":513},"\u002Fblog\u002Fversion-history-is-not-a-backup","Der Versionsverlauf ist kein Backup. Er holt keine Tabelle zurück.","Lovable und Bolt führen einen Versionsverlauf für deinen Code. Deine Datenbank ist ein eigener Dienst, und ein Rücksprung holt deine Daten nicht zurück.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Fcard-800x500.png",{"path":893,"title":894,"description":895,"published":896,"category":628,"image":897,"draft":513},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","Drei Wege, eine Supabase-Datenbank zu sichern, und was fehlt","Das Dashboard, pg_dump und ein verwalteter Dienst. Was jeder Weg wirklich sichert, was er stillschweigend auslässt und welcher den Kontoverlust übersteht.","2026-08-09","\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database\u002Fcard-800x500.png",{"path":899,"title":900,"description":901,"published":896,"category":509,"image":902,"draft":513},"\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend","Welche API-Schlüssel im Frontend sicher sind, und welche nicht","Dein Supabase-anon-Schlüssel darf öffentlich sein. Der service_role-Schlüssel nicht. Er ignoriert jede Regel, die du setzt. So erkennst du den Unterschied.","\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend\u002Fcard-800x500.png",1791618966337]