[{"data":1,"prerenderedAt":773},["ShallowReactive",2],{"blog-de-safest-ai-app-builder":3,"blog-index-de":533},{"id":4,"title":5,"body":6,"category":492,"cover":493,"coverAlt":494,"description":495,"draft":496,"extension":497,"faq":498,"image":514,"keywords":515,"meta":521,"navigation":522,"ogTitle":28,"path":523,"published":524,"seo":525,"stem":526,"tldr":527,"updated":531,"__hash__":532},"blog_de\u002Fblog\u002Fsafest-ai-app-builder.md","Welcher KI-App-Builder ist am sichersten? 30.998 Apps im Test",{"type":7,"value":8,"toc":480},"minimark",[9,13,16,24,29,32,35,38,42,45,58,61,65,68,71,79,83,86,235,248,256,259,280,287,291,294,297,300,306,314,322,326,329,332,421,426,429,439,443,465,472],[10,11,12],"p",{},"Du hast einen Builder gewählt, bevor du über irgendeinen davon etwas wusstest.\nVielleicht hat ein Thread einen empfohlen, vielleicht mochtest du die Demo,\nvielleicht war es der, den dein Freund benutzt hat. Und irgendwann seitdem hast\ndu jemanden behaupten hören, ausgerechnet deiner sei der unsichere, und dich\ngefragt, ob der sicherste KI-App-Builder die ganze Zeit einer der anderen war.",[10,14,15],{},"Also haben wir es gemessen. Im August 2026 haben wir 30.998 aktive Apps\ngescannt, die von Lovable, Base44, Replit, v0 und Bolt veröffentlicht wurden,\nund bei jeder einzelnen dieselben neun externen Prüfungen laufen lassen.",[10,17,18,19,23],{},"Hier ist der Teil, den die Vergleichsartikel falsch machen: ",[20,21,22],"strong",{},"der Builder, den du\ngewählt hast, entscheidet fast nie darüber, ob deine App offen liegt."," Alle fünf\nkamen zwischen 99 % und 100 % bei mindestens einem Fund heraus. Die echten\nUnterschiede zwischen ihnen sind groß, und es sind Unterschiede in den\nVoreinstellungen statt in der Sicherheit.",[25,26,28],"h2",{"id":27},"welcher-ki-app-builder-ist-am-sichersten","Welcher KI-App-Builder ist am sichersten?",[10,30,31],{},"Keiner, und die Rangliste, die du suchst, gibt es nicht.",[10,33,34],{},"Jeder Builder in diesem Scan hat Apps mit Funden hervorgebracht, in etwa gleich\nhäufig, weil der häufigste Fund vom Hosting gesetzt wird und nicht von der\nPerson, die die App gebaut hat. Unterhalb dieser Überschrift gehen die Builder\ndeutlich auseinander, aber sie gehen bei Dingen auseinander wie der Frage, ob\ndein Quellcode neben deiner App veröffentlicht wird, nicht bei der Frage, ob\nFremde deine Nutzer lesen können.",[10,36,37],{},"Was ein A von einem D trennt, ist etwas, das du getan hast, nachdem du den\nBuilder gewählt hattest. Meistens ist es eine Entscheidung: Du hast eine\nDatenbank angebunden.",[25,39,41],{"id":40},"was-wir-gemessen-haben","Was wir gemessen haben",[10,43,44],{},"Dieselben neun Prüfungen, die wir auch bei deiner App laufen lassen würden, von\naußen gelesen, ohne Login und ohne Zugriff auf irgendein Konto.",[10,46,47,48,51,52,57],{},"Wir haben jede App zwischen dem 12. und 14. August 2026 gescannt, und 30.998\ndavon lieferten ein Ergebnis, das wir einordnen konnten. Jeder Prozentwert unten\nist ein Anteil an den Apps, bei denen diese Prüfung tatsächlich ",[20,49,50],{},"geantwortet","\nhat, nie ein Anteil an allem, was wir gescannt haben. Eine Prüfung, die nicht\nabgeschlossen werden konnte, wird als unbekannt erfasst und nicht als bestanden.\nDeshalb wandern die Nenner in den Tabellen. Die vollständige Methode und die\nzugrunde liegenden Daten stehen\n",[53,54,56],"a",{"href":55},"\u002Fresearch\u002Fvibe-coded-app-security-2026","im Bericht",".",[10,59,60],{},"Zwei Dinge haben wir nicht getan. Wir haben uns nirgends eingeloggt, und wir\nhaben niemandes Zeilen gelesen: Wo eine Tabelle geantwortet hat, haben wir die\nDatenbank gefragt, wie viele Zeilen sie herausgeben würde, und dort aufgehört.\nKeine App wird hier oder sonstwo von uns namentlich genannt.",[25,62,64],{"id":63},"jeder-builder-liegt-bei-99-und-diese-zahl-sagt-weniger-als-sie-aussieht","Jeder Builder liegt bei 99 %, und diese Zahl sagt weniger, als sie aussieht",[10,66,67],{},"Weil fast alles davon ein einziger Fund ist, und dieser Fund gehört der\nPlattform.",[10,69,70],{},"Fehlende Browser-Sicherheitsheader tauchten bei 18.539 von 18.554 Lovable-Apps\nauf, bei allen 5.438 Base44-Apps, bei 1.790 von 1.790 v0-Apps, bei 1.121 von\n1.123 Bolt-Apps und bei 2.924 von 3.042 Replit-Apps. Header werden von dem\ngesendet, was deine App ausliefert. Auf der Domain eines Builders sind sie\ndeshalb eine Eigenschaft dieser Domain und bei jeder App darauf identisch.",[10,72,73,74,78],{},"Es ist ein echter Fund, und er ist es wert, geschlossen zu werden, wenn du auf\ndeine eigene Domain umziehst. Aber er ist die\n",[53,75,77],{"href":76},"\u002Fblog\u002Fmissing-security-headers","am wenigsten dringende Zeile eines Berichts",",\nund er ist das meiste von dem, was \"99 % der Apps haben ein Problem\" zählt.",[25,80,82],{"id":81},"der-echte-unterschied-zwischen-buildern-sind-voreinstellungen","Der echte Unterschied zwischen Buildern sind Voreinstellungen",[10,84,85],{},"Jeder Builder liefert einen anderen Satz Voreinstellungen aus, und die tauchen in\nfast jeder App auf, die er baut.",[87,88,89,118],"table",{},[90,91,92],"thead",{},[93,94,95,99,103,106,109,112,115],"tr",{},[96,97,98],"th",{},"Builder",[96,100,102],{"align":101},"right","Gescannte Apps",[96,104,105],{"align":101},"Mindestens ein Fund",[96,107,108],{"align":101},"Quellcode veröffentlicht",[96,110,111],{"align":101},"Cross-Origin-Fund",[96,113,114],{"align":101},"Geheimer Schlüssel",[96,116,117],{"align":101},"Note D oder F",[119,120,121,145,170,192,213],"tbody",{},[93,122,123,127,130,133,136,139,142],{},[124,125,126],"td",{},"Lovable",[124,128,129],{"align":101},"18.554",[124,131,132],{"align":101},"99 %",[124,134,135],{"align":101},"225 von 18.553",[124,137,138],{"align":101},"8 von 18.518",[124,140,141],{"align":101},"822 (4 %)",[124,143,144],{"align":101},"407",[93,146,147,150,153,156,159,164,167],{},[124,148,149],{},"Base44",[124,151,152],{"align":101},"5.438",[124,154,155],{"align":101},"100 %",[124,157,158],{"align":101},"3.229 von 5.434 (59 %)",[124,160,161],{"align":101},[20,162,163],{},"5.418 von 5.419 (99 %)",[124,165,166],{"align":101},"103 (2 %)",[124,168,169],{"align":101},"2",[93,171,172,175,178,180,183,186,189],{},[124,173,174],{},"Replit",[124,176,177],{"align":101},"3.042",[124,179,132],{"align":101},[124,181,182],{"align":101},"168 von 3.041 (6 %)",[124,184,185],{"align":101},"1.129 von 3.037 (37 %)",[124,187,188],{"align":101},"219 (7 %)",[124,190,191],{"align":101},"9",[93,193,194,197,200,202,205,208,211],{},[124,195,196],{},"v0",[124,198,199],{"align":101},"1.790",[124,201,155],{"align":101},[124,203,204],{"align":101},"0 von 1.790",[124,206,207],{"align":101},"0 von 1.786",[124,209,210],{"align":101},"0",[124,212,210],{"align":101},[93,214,215,218,221,223,226,229,232],{},[124,216,217],{},"Bolt",[124,219,220],{"align":101},"1.123",[124,222,155],{"align":101},[124,224,225],{"align":101},"13 von 1.123",[124,227,228],{"align":101},"5 von 1.120",[124,230,231],{"align":101},"75 (7 %)",[124,233,234],{"align":101},"15",[10,236,237,238,242,243,247],{},"Die Source-Map-Spalte ist die, die man genau lesen muss, denn auf Base44 misst\nsie nicht dasselbe wie bei den anderen vier. Wir haben im September 30 markierte\nBase44-Apps erneut geöffnet: Bei 27 antwortete als einzige Karte\n",[239,240,241],"code",{},"\u002Fstatic\u002Fjs\u002Fbadge.js.map",", die zum Badge-Skript von Base44 gehört, und bei keiner\nder 30 deckte eine Karte die Dateien der Besitzerin ab. Diese 59 % sind also eine\nPlattform, die auf jeder von ihr gehosteten App eine eigene Datei veröffentlicht,\nund nicht 3.229 Besitzerinnen, die ihren Code verlieren. Auf Lovable, Replit und\nBolt meint dieselbe Spalte sehr wohl den Code der Besitzerin, weshalb sich 1 %,\n6 % und 59 % nicht als Rangliste von oben nach unten lesen lassen.\n",[53,244,246],{"href":245},"\u002Fblog\u002Fbase44-source-maps","Was wir in diesen Base44-Karten gefunden haben"," ist\nder ganze Bericht.",[10,249,250,251,255],{},"Die Spalte mit den 99 % ist die echte, und auch sie geht auf Base44 selbst\nzurück: Die Plattform setzt CORS für jede App, die sie hostet, und bietet keine\nEinstellung pro App. Veröffentlichter Quellcode heißt, wo er deiner ist, dass die\nursprünglichen Dateien hinter deiner App aus den Entwicklerwerkzeugen des\nBrowsers lesbar sind.\n",[53,252,254],{"href":253},"\u002Fblog\u002Fsource-maps-exposed-in-production","Was das preisgibt und was nicht"," lohnt\nsich zu lesen, wenn du auf einer der anderen vier bist.",[10,257,258],{},"Die Spalte mit den geheimen Schlüsseln ist die, von der alle erwarten, dass sie\ndominiert, und das tut sie nicht. Ein Schlüssel, der eine Erwähnung wert ist,\ntauchte bei drei der fünf Builder in 4 % bis 7 % der Apps auf und bei den\nv0-Apps überhaupt nicht.",[10,260,261,262,265,266,269,270,265,273,276,277,57],{},"Wenn du die Fassung in einfacher Sprache für den Builder willst, den du wirklich\nbenutzt: Jeder hat seine eigene Seite,\n",[53,263,126],{"href":264},"\u002Fis-your-lovable-app-safe",", ",[53,267,149],{"href":268},"\u002Fis-your-base44-app-safe",",\n",[53,271,174],{"href":272},"\u002Fis-your-replit-app-safe",[53,274,196],{"href":275},"\u002Fis-your-v0-app-safe"," und\n",[53,278,217],{"href":279},"\u002Fis-your-bolt-app-safe",[10,281,282,283,57],{},"Oder spar dir das Lesen: Unser kostenloser Scan lässt genau diese Prüfungen gegen\ndeine aktive Seite laufen und sagt dir, bei welchen davon deine App hängen\nbleibt. Etwa 20 Sekunden, kein Konto: ",[53,284,286],{"href":285},"\u002F#scan","scanne deine App",[25,288,290],{"id":289},"was-eine-d-oder-f-wirklich-entscheidet","Was eine D oder F wirklich entscheidet",[10,292,293],{},"Eine Datenbank, und was du mit ihr gemacht hast.",[10,295,296],{},"Lovable brachte 407 Apps mit Note D oder F hervor, von 18.554. v0 brachte keine\neinzige hervor, von 1.790. Das sieht nach einem Urteil über die beiden Builder\naus, bis du dir ansiehst, was diese Apps sind: 35 % der Lovable-Apps nennen ein\nDatenbankprojekt, gegenüber rund 1 % der v0-Apps.",[10,298,299],{},"Die Prüfungen, die eine D oder F erzeugen können, sind fast alle\nDatenbankprüfungen. Eine App ohne Datenbank hat weniger, was schiefgehen kann,\nund weniger, was wir uns ansehen können. Die Lovable-Zeile misst also keinen\nschlechteren Builder, sie misst einen Builder, dessen Nutzer Datenbanken\nanbinden, was der Hauptgrund ist, warum Leute ihn wählen.",[301,302],"diagram",{"alt":303,"caption":304,"src":305},"Zwei Apps nebeneinander als identische Tafeln gezeichnet. Die linke enthält einen einzelnen leeren Block mit drei grünen Häkchen darunter und dem Buchstaben A in der oberen Ecke. Die rechte enthält denselben Block und dieselben drei Häkchen, dazu eine gestrichelte Linie hinunter zu einem roten Datenbankzylinder und einem roten Kreuz, und den Buchstaben D in der oberen Ecke.","Die äußeren Prüfungen fallen bei beiden gleich aus. Alles, was eine ernste Note erzeugen kann, sitzt in dem Teil, den du selbst angebunden hast.","\u002Fblog\u002Fsafest-ai-app-builder\u002Fwhere-a-grade-comes-from-1600x700.png",[10,307,308,309,313],{},"Von den 3.553 Lovable-Apps, deren Datenbank uns geantwortet hat, hatten 2.017\nmindestens eine Tabelle, die ein Fremder ohne Login lesen konnte. Das ist\n",[53,310,312],{"href":311},"\u002Fblog\u002Fcan-anyone-read-your-supabase-database","der Fund, den man zuerst beheben sollte",",\nund er hat nichts damit zu tun, welcher Builder dein Frontend erzeugt hat.",[10,315,316,317,321],{},"Bei Lovable ist diese Zahl groß genug für einen eigenen Artikel: ",[53,318,320],{"href":319},"\u002Fblog\u002Fis-lovable-safe","was 18.554\nechte Lovable-Apps zeigten"," führt dieselben neun Checks\ndurch unsere größte Kohorte.",[25,323,325],{"id":324},"warum-wir-keine-rangliste-aufstellen","Warum wir keine Rangliste aufstellen",[10,327,328],{},"Weil wir bei drei der fünf nicht genug Datenbanken prüfen konnten, um überhaupt\netwas zu sagen.",[10,330,331],{},"Hier ist der Teil der Daten, den jede Rangliste weglässt:",[87,333,334,349],{},[90,335,336],{},[93,337,338,340,343,346],{},[96,339,98],{},[96,341,342],{"align":101},"Nennt ein Datenbankprojekt",[96,344,345],{"align":101},"Datenbanken, die geantwortet haben",[96,347,348],{},"Hatte eine lesbare Tabelle",[119,350,351,364,378,393,408],{},[93,352,353,355,358,361],{},[124,354,126],{},[124,356,357],{"align":101},"35 %",[124,359,360],{"align":101},"3.553",[124,362,363],{},"2.017, also 57 %",[93,365,366,368,371,375],{},[124,367,149],{},[124,369,370],{"align":101},"27 %",[124,372,373],{"align":101},[20,374,169],{},[124,376,377],{},"2 von den 2, die wir erreicht haben",[93,379,380,382,385,390],{},[124,381,217],{},[124,383,384],{"align":101},"24 %",[124,386,387],{"align":101},[20,388,389],{},"35",[124,391,392],{},"27 von den 35, die wir erreicht haben",[93,394,395,397,400,405],{},[124,396,174],{},[124,398,399],{"align":101},"1 %",[124,401,402],{"align":101},[20,403,404],{},"5",[124,406,407],{},"4 von den 5, die wir erreicht haben",[93,409,410,412,414,418],{},[124,411,196],{},[124,413,399],{"align":101},[124,415,416],{"align":101},[20,417,210],{},[124,419,420],{},"nichts zu prüfen",[301,422],{"alt":423,"caption":424,"src":425},"Fünf Zeilen, jede mit dem Logo eines Builders und der Zahl seiner von uns gescannten Apps am Anfang. Jede Zeile zeichnet diese Apps als blassen Balken, in dem die Datenbanken, die uns geantwortet haben, ausgefüllt sind. Der ausgefüllte Teil von Lovable ist ein breiter Block mit 3.553; Base44, Replit und Bolt sind Haarlinien mit 2, 5 und 35, und der von v0 ist ein gestrichelter leerer Kreis mit 0.","Der ausgefüllte Teil jedes Balkens ist das, was wir wirklich prüfen konnten. Vier der fünf sind zu dünn, um einen Prozentwert zu tragen.","\u002Fblog\u002Fsafest-ai-app-builder\u002Fwhat-we-could-check-1600x620.png",[10,427,428],{},"Sieh dir die Base44-Zeile an. Mehr als ein Viertel seiner Apps nennt ein\nDatenbankprojekt, und genau zwei dieser Datenbanken haben uns je geantwortet.\nWir werden aus zwei Apps keine Quote machen und sie neben eine Zahl stellen, die\nauf 3.553 beruht. Und alle anderen, die von außen gescannt haben, können das\nauch nicht, ganz gleich, was ihre Vergleichstabelle behauptet.",[430,431,433],"callout",{"type":432},"warn",[10,434,435,438],{},[20,436,437],{},"Eine Prüfung, die nicht abgeschlossen werden konnte, ist keine bestandene\nPrüfung."," Das ist die Regel, die über das meiste hier oben entscheidet, und es\nist die, die still unter den Tisch fällt, sobald ein Scan zur Rangliste wird.\nEine App, die wir nicht erreichen konnten, ist unbekannt. Eine Datenbank, die nie\ngeantwortet hat, ist unbekannt. Beides als sauber zu zählen erzeugt ein\naufgeräumteres Diagramm und ein falsches, und es ist das Schlimmste, was ein\nSicherheitsbericht jemandem antun kann, der sich danach keine Sorgen mehr macht.",[25,440,442],{"id":441},"was-du-bei-deiner-eigenen-app-prüfen-solltest","Was du bei deiner eigenen App prüfen solltest",[444,445,446],"key-takeaways",{},[447,448,449,453,456,459,462],"ul",{},[450,451,452],"li",{},"Hör auf, nach einem sichereren Builder zu suchen. Nichts in diesen Daten spricht für einen Umzug, und ein Umzug baut deine ganze App neu, um eine Zeile zu ändern, für die du nie benotet wurdest.",[450,454,455],{},"Fang bei deinen Datenbanktabellen an, egal welchen Builder du benutzt hast. Eine Tabelle, die ein Fremder lesen kann, ist der Fund, der eine App leert, und sie ist das Einzige hier, das nur du selbst beheben kannst.",[450,457,458],{},"Finde heraus, ob dein Builder deinen Quellcode veröffentlicht, und schalte es ab, wenn er es tut. Es ist eine Einstellung, und bei einer der fünf Plattformen oben ist sie bei drei von fünf Apps standardmäßig an.",[450,460,461],{},"Behandle den Header-Fund als Hausarbeit. Er ist real, er betrifft fast jede App auf der Domain eines Builders, und er ist nicht das, was jemand gegen dich verwenden wird.",[450,463,464],{},"Prüfe jeden Schlüssel in deinem veröffentlichten Code, bevor du dir über irgendetwas anderes auf dieser Seite Sorgen machst, denn das ist der eine Fund, der schon Geld kostet, während du liest.",[10,466,467,468,57],{},"All das lässt sich von Hand prüfen. Die Antwort nächsten Monat noch richtig zu\nhalten, ist der Teil, der nicht erledigt bleibt, und dafür gibt es Reeve Care: Es\nlässt genau diese Prüfungen nach Plan erneut laufen und sagt dir, wenn eine\nAntwort schlechter wird, und hält geprüfte Kopien deiner Datenbank außerhalb des\nKontos deines Datenbankanbieters, damit es etwas zum Zurückspielen gibt. Diese\nzweite Hälfte zählt hier, weil wir immer nur das Lesen prüfen, und dieselbe\ngroßzügige Regel, die einen Fremden eine Tabelle lesen lässt, lässt ihn meistens\nauch hineinschreiben. ",[53,469,471],{"href":470},"\u002Fpricing","Was es überwacht und was es kostet",[10,473,474,475,479],{},"Wenn du das lieber als Liste abarbeiten willst: Die\n",[53,476,478],{"href":477},"\u002Fchecklist","10-Minuten-Sicherheitscheckliste"," deckt das Ganze in einfacher\nSprache ab.",{"title":481,"searchDepth":482,"depth":482,"links":483},"",3,[484,486,487,488,489,490,491],{"id":27,"depth":485,"text":28},2,{"id":40,"depth":485,"text":41},{"id":63,"depth":485,"text":64},{"id":81,"depth":485,"text":82},{"id":289,"depth":485,"text":290},{"id":324,"depth":485,"text":325},{"id":441,"depth":485,"text":442},"Sicherheitsgrundlagen","\u002Fblog\u002Fsafest-ai-app-builder\u002Fcover-1200x630.png","Fünf identische weiße Kacheln in einer Reihe auf dunklem Grund, gleich groß, jede mit dem Logo eines App-Builders.","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.",false,"md",[499,502,505,508,511],{"q":500,"a":501},"Welcher KI-App-Builder baut die sichersten Apps?","Messbar keiner. Über 30.998 aktive Apps hinweg lag jeder Builder, den wir gescannt haben, zwischen 99 % und 100 % bei mindestens einem Fund, und der Großteil davon sind fehlende Browser-Sicherheitsheader, die das Hosting setzt und nicht du. Die Unterschiede zwischen Buildern sind Unterschiede in den Voreinstellungen: was neben deiner App mit veröffentlicht wird und wie die Verbindung zu deiner API konfiguriert ist. Keine dieser Voreinstellungen erzeugt eine ernste Note.",{"q":503,"a":504},"Spielt es überhaupt eine Rolle, welchen Builder ich gewählt habe?","Für das, was du am ersten Tag erbst, ja. Für das, was danach passiert, kaum. Manche Builder veröffentlichen deinen Quellcode mit jeder App, andere nicht. Manche setzen standardmäßig eine weit offene Cross-Origin-Regel, andere nicht. Das ist gut zu wissen und meistens wert, geändert zu werden. Aber der Fund, der Leute wirklich ihre Daten kostet, ist eine lesbare Datenbanktabelle, und die bekommst du, indem du eine Datenbank anbindest und eine großzügige Regel schreibst. Das geht bei jedem Builder.",{"q":506,"a":507},"Jede App von meinem Builder ist bei den Sicherheitsheadern durchgefallen. Ist das meine Schuld?","Nein, und meistens kannst du es aus dem Builder heraus auch nicht ändern. Sicherheitsheader werden von dem gesendet, was deine App ausliefert. Auf einer Builder-Domain sind sie deshalb die Voreinstellung der Plattform und bei jeder App darauf identisch. Genau darum liegt die Zahl bei allen fünf bei 99 % oder 100 %. Es ist aus demselben Grund die am wenigsten dringende Zeile eines Berichts: real, wert behoben zu werden, wenn du auf deine eigene Domain umziehst, und ohne Aussage darüber, ob jemand an deine Daten kommt.",{"q":509,"a":510},"v0 hatte null Apps mit Note D oder F. Ist es damit das sicherste?","Es ist damit das mit den wenigsten angebundenen Datenbanken. Nur etwa 1 % der v0-Apps, die wir gescannt haben, nannte überhaupt ein Datenbankprojekt, gegenüber 35 % der Lovable-Apps, und die Prüfungen, die eine D oder F erzeugen, sind Datenbankprüfungen. Eine App ohne Datenbank hat weniger, was schiefgehen kann, und weniger, was wir prüfen können. Lies diese Zeile als Aussage darüber, was diese Apps sind, nicht darüber, wie gut der Builder sie schützt.",{"q":512,"a":513},"Sollte ich meine App zu einem anderen Builder umziehen, damit sie sicherer wird?","Nein. Ein Umzug heißt, alles neu zu bauen, und ändert an dieser Liste fast nichts, weil die Funde, auf die es ankommt, in den Diensten liegen, die du angebunden hast, und nicht in dem Builder, der deinen Code erzeugt hat. Die beiden, die sich lohnen, sind die Regeln auf deinen Datenbanktabellen und jeder geheime Schlüssel, der in deinem veröffentlichten Code liegt. Beide ziehen mit dir um, wohin auch immer, und beide lassen sich dort beheben, wo du gerade bist.","\u002Fblog\u002Fsafest-ai-app-builder\u002Fcard-800x500.png",[516,517,518,519,520],"sicherster ki-app-builder","welcher ki-app-builder ist am sichersten","ki-app-builder sicherheit vergleich","lovable vs bolt sicherheit","sind ki-apps sicher",{},true,"\u002Fblog\u002Fsafest-ai-app-builder","2026-09-11",{"title":5,"description":495},"blog\u002Fsafest-ai-app-builder",[528,529,530],"Es gibt keinen sichersten KI-App-Builder. Alle fünf, die wir gescannt haben, lagen zwischen 99 % und 100 % bei mindestens einem Fund, und fast alles davon ist ein Browser-Header, den ihr Hosting setzt.","Was sich zwischen Buildern unterscheidet, sind Voreinstellungen, und die Abstände sind groß. Base44s 3.229 Source-Maps von 5.434 sind das eigene Badge-Skript der Plattform und nicht irgendeine App; Lovables 225 von 18.553 sind der Code der Besitzerin.","Was eine ernste Note entscheidet, ist nicht der Builder. Es ist, ob du eine Datenbank angebunden und eine Tabelle lesbar gelassen hast.","2026-09-21","pHBTb_mIOEvXwvGzI77_3K0S68UDnnbq2pD4ypTYTSc",[534,541,547,551,557,563,569,574,580,586,592,598,604,605,611,617,623,629,635,641,646,652,658,664,670,676,682,688,694,700,706,712,718,724,730,735,739,745,751,757,762,768],{"path":535,"title":536,"description":537,"published":538,"category":539,"image":540,"draft":496},"\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","Backups","\u002Fblog\u002Fsupabase-backup-auth-users\u002Fcard-800x500.png",{"path":542,"title":543,"description":544,"published":545,"category":492,"image":546,"draft":496},"\u002Fblog\u002Fdomain-and-certificate-expiry","Domain abgelaufen, Website offline: was jetzt passiert","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.","2026-09-22","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcard-800x500.png",{"path":319,"title":548,"description":549,"published":531,"category":492,"image":550,"draft":496},"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.","\u002Fblog\u002Fis-lovable-safe\u002Fcard-800x500.png",{"path":552,"title":553,"description":554,"published":555,"category":492,"image":556,"draft":496},"\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":558,"title":559,"description":560,"published":561,"category":492,"image":562,"draft":496},"\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":564,"title":565,"description":566,"published":567,"category":492,"image":568,"draft":496},"\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":245,"title":570,"description":571,"published":572,"category":492,"image":573,"draft":496},"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":575,"title":576,"description":577,"published":578,"category":492,"image":579,"draft":496},"\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":581,"title":582,"description":583,"published":584,"category":492,"image":585,"draft":496},"\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":587,"title":588,"description":589,"published":590,"category":539,"image":591,"draft":496},"\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":593,"title":594,"description":595,"published":596,"category":539,"image":597,"draft":496},"\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":599,"title":600,"description":601,"published":602,"category":539,"image":603,"draft":496},"\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":523,"title":5,"description":495,"published":524,"category":492,"image":514,"draft":496},{"path":606,"title":607,"description":608,"published":609,"category":492,"image":610,"draft":496},"\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":612,"title":613,"description":614,"published":615,"category":492,"image":616,"draft":496},"\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":618,"title":619,"description":620,"published":621,"category":492,"image":622,"draft":496},"\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":624,"title":625,"description":626,"published":627,"category":492,"image":628,"draft":496},"\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":630,"title":631,"description":632,"published":633,"category":492,"image":634,"draft":496},"\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":636,"title":637,"description":638,"published":639,"category":492,"image":640,"draft":496},"\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":76,"title":642,"description":643,"published":644,"category":492,"image":645,"draft":496},"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":647,"title":648,"description":649,"published":650,"category":492,"image":651,"draft":496},"\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":653,"title":654,"description":655,"published":656,"category":492,"image":657,"draft":496},"\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":659,"title":660,"description":661,"published":662,"category":539,"image":663,"draft":496},"\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":665,"title":666,"description":667,"published":668,"category":492,"image":669,"draft":496},"\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":671,"title":672,"description":673,"published":674,"category":539,"image":675,"draft":496},"\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":677,"title":678,"description":679,"published":680,"category":492,"image":681,"draft":496},"\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":683,"title":684,"description":685,"published":686,"category":492,"image":687,"draft":496},"\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":689,"title":690,"description":691,"published":692,"category":492,"image":693,"draft":496},"\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":695,"title":696,"description":697,"published":698,"category":492,"image":699,"draft":496},"\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":701,"title":702,"description":703,"published":704,"category":539,"image":705,"draft":496},"\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":707,"title":708,"description":709,"published":710,"category":539,"image":711,"draft":496},"\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":713,"title":714,"description":715,"published":716,"category":492,"image":717,"draft":496},"\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":719,"title":720,"description":721,"published":722,"category":492,"image":723,"draft":496},"\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":725,"title":726,"description":727,"published":728,"category":539,"image":729,"draft":496},"\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":311,"title":731,"description":732,"published":733,"category":492,"image":734,"draft":496},"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":253,"title":736,"description":737,"published":733,"category":492,"image":738,"draft":496},"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":740,"title":741,"description":742,"published":743,"category":492,"image":744,"draft":496},"\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":746,"title":747,"description":748,"published":749,"category":539,"image":750,"draft":496},"\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":752,"title":753,"description":754,"published":755,"category":492,"image":756,"draft":496},"\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":758,"title":759,"description":760,"published":755,"category":539,"image":761,"draft":496},"\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":763,"title":764,"description":765,"published":766,"category":539,"image":767,"draft":496},"\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":769,"title":770,"description":771,"published":766,"category":492,"image":772,"draft":496},"\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",1790150951364]