[{"data":1,"prerenderedAt":321},["ShallowReactive",2],{"guide-base44-de":3},{"id":4,"title":5,"body":6,"cover":287,"coverAlt":288,"description":289,"extension":290,"faq":291,"keywords":304,"meta":310,"navigation":311,"path":312,"platform":67,"published":313,"seo":314,"stem":315,"tldr":316,"updated":313,"__hash__":320},"platform_de\u002Fis-your-base44-app-safe.md","Ist deine Base44-App sicher?",{"type":7,"value":8,"toc":276},"minimark",[9,13,16,24,29,32,43,49,52,61,64,68,72,75,80,104,117,120,124,127,134,137,145,149,152,159,162,170,174,177,182,185,197,205,209,215,221,227,233,243,268],[10,11,12],"p",{},"Base44 macht etwas, das andere Baukästen nicht machen, und das lohnt sich zu\nwissen, bevor du nach Problemen suchst: Deine Daten antworten dem Internet nie\ndirekt.",[10,14,15],{},"Deine App fragt Base44 nach etwas, Base44 fragt die Datenbank, und die Antwort\nkommt denselben Weg zurück. Es gibt keine Adresse, die ein Fremder eintippen\nkönnte. Bei den meisten schnell gebauten Apps ist die größte Ursache für\nabgeflossene Daten eine Tabelle, die jeder mit der Projektadresse lesen kann,\nund bei Base44 steht dir dieser Fehler schlicht nicht zur Verfügung.",[10,17,18,19,23],{},"Und hier ist der Teil, den Anleitung um Anleitung falsch darstellt: ",[20,21,22],"strong",{},"Das macht\ndeine App nicht sicher, sondern auf genau eine Art sicher."," Das Risiko wandert,\nund wohin es wandert, ist so gut vorhersehbar, dass wir es dir jetzt sagen\nkönnen, bevor du irgendetwas prüfst.",[25,26,28],"h2",{"id":27},"was-base44-für-dich-aus-dem-internet-heraushält","Was Base44 für dich aus dem Internet heraushält",[10,30,31],{},"Das Lager, um beim naheliegenden Vergleich zu bleiben.",[10,33,34,35,38,39,42],{},"Stell dir deine App als Laden vor. Alles, was der Browser eines Besuchers\nherunterlädt, ist das ",[20,36,37],{},"Schaufenster",", und es wird jedem vollständig\nausgehändigt, der die Seite lädt: Ein Browser kann nichts anzeigen, was ihm\nnicht geschickt wurde. Dahinter liegt das ",[20,40,41],{},"Lager",", deine Daten. Bei den\nmeisten Baukästen ist das Lager ein eigenes Gebäude mit eigener Adresse in\nderselben Straße, und ob Fremde hineinspazieren, hängt von einer Einstellung ab,\ndie du vielleicht nie gesehen hast. Bei Base44 gibt es keine Straßentür.",[44,45],"diagram",{"alt":46,"caption":47,"src":48},"Eine Base44-App mit einem Pfeil auf ein Base44-Feld, das wiederum mit einem Pfeil auf einen Datenbankzylinder zeigt. Darunter ist der Weg eines anonymen Besuchers zu derselben Datenbank als gestrichelte Linie mit einem roten Kreuz gezeichnet.","Die gestrichelte Linie ist der Weg, den andere Baukästen haben. Sie steht hier, damit du siehst, was absichtlich fehlt.","\u002Fguides\u002Fbase44\u002Fwhere-your-data-sits-1600x820.png",[10,50,51],{},"In der Praxis heißt das: Es gibt nichts, was man in einen Browser einfügen\nkönnte. Bei einer App mit Supabase dahinter kann jeder die Projektadresse aus\ndeinem Bündel holen, einen Tabellennamen anhängen und schauen, was\nzurückkommt. Machst du dasselbe bei einer Base44-App, ist die einzige Adresse,\ndie du findest, deine eigene, auf deiner eigenen Domain, und sie antwortet das,\nwofür deine App geschrieben wurde.",[10,53,54,55,60],{},"Es zeigt sich in den Noten. Unter den Base44-Apps in\n",[56,57,59],"a",{"href":58},"\u002Fresearch\u002Fvibe-coded-app-security-2026","unserer Untersuchung live geschalteter Apps","\nlandet fast jede bei A oder B, und die Ausfälle, die andere Baukästen auf ein D\nziehen, tauchen kaum auf.",[10,62,63],{},"Es hat auch eine ehrliche Konsequenz: Von außen kann das niemand nachprüfen, wir\neingeschlossen. Eine Prüfung aus dem Internet kann nur an Türen rütteln, die es\ngibt. Hier gibt es keine, also gibt es nichts zu berichten, und ein Scanner, der\nauf dieser Grundlage \"Datenbank: sicher\" druckt, erfindet ein Ergebnis.",[65,66],"guide-cta",{"platform":67},"base44",[25,69,71],{"id":70},"ist-ein-schlüssel-in-deiner-base44-app-ein-problem","Ist ein Schlüssel in deiner Base44-App ein Problem?",[10,73,74],{},"Meistens nicht, und die beiden Arten sehen fast gleich aus.",[44,76],{"alt":77,"caption":78,"src":79},"Zwei Karten nebeneinander. Der veröffentlichbare Schlüssel, mit grünem Haken, ist als im Browser unbedenklich beschriftet und zeigt sb_publishable_, anon und pk_live. Der geheime Schlüssel, mit rotem Kreuz, ist als nur für den Server beschriftet und zeigt sb_secret_, service_role und sk_live.","Beide heißen API-Schlüssel. Nur einer davon war je zum Lesen gedacht.","\u002Fguides\u002Ftwo-kinds-of-key-1600x760.png",[10,81,82,83,86,87,90,91,95,96,99,100,103],{},"Ein ",[20,84,85],{},"veröffentlichbarer"," Schlüssel benennt ein Projekt und tut sonst nichts.\nEr ist zum Lesen gedacht, und ihn zu finden ist kein Fund. Ein ",[20,88,89],{},"geheimer","\nSchlüssel, geschrieben als ",[92,93,94],"code",{},"sb_secret_…",", ",[92,97,98],{},"service_role"," oder ",[92,101,102],{},"sk_live_…",",\numgeht jede Regel, die du geschrieben hast, und kann alles lesen und ändern.",[10,105,106,107,111,112,116],{},"Base44 hält seine eigenen Zugangsdaten auf dem Server, ein Schlüssel in deiner\nApp gehört also meist gar nicht Base44. Er stammt von etwas, das du selbst\nangebunden hast: ein Karten-, Analyse- oder Zahlungsschlüssel, eingefügt, damit\neine Funktion läuft. Der häufigste, den wir in Base44-Apps finden, ist ein\nGoogle-API-Schlüssel, und den sollte man\n",[56,108,110],{"href":109},"\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend","verstehen statt in Panik zu geraten",",\ndenn ein unbeschränkter kann von Fremden ausgegeben werden.\n",[56,113,115],{"href":114},"\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend","Zu lesen, welchen Schlüssel du hast",",\ndauert etwa eine Minute.",[10,118,119],{},"Findest du wirklich ein Geheimnis, kommt es auf die Reihenfolge an. Tausche es\ndort aus, wo es ausgestellt wurde, in Google Cloud oder Stripe oder wo auch\nimmer es herkam, und nimm es erst danach aus deinem Code. Die Zeile zuerst zu\nlöschen schließt gar nichts: Der alte Wert steckt längst in jeder\nzwischengespeicherten Kopie deiner Seite und in dem, was ein Crawler vorige\nWoche mitgenommen hat.",[25,121,123],{"id":122},"die-einstellung-die-bei-fast-jeder-base44-app-falsch-steht","Die Einstellung, die bei fast jeder Base44-App falsch steht",[10,125,126],{},"Kein Schlüssel, und nicht die Datenbank. Es geht darum, mit wem deine API zu\nsprechen bereit ist.",[10,128,129,130,133],{},"Ein Browser verweigert normalerweise, dass eine Website die Daten einer anderen\nliest. Diese Regel ist der Grund, warum eine Seite, die du öffnest, nicht\nklammheimlich deine Bank aufrufen und deinen Kontostand anzeigen kann. Ein\nAntwort-Header namens CORS hebt sie auf, und auf ",[92,131,132],{},"*"," gesetzt hebt er sie für\nalle auf: Eine Seite, von der du nie gehört hast, kann die API deiner App aus\ndem Browser deines Besuchers aufrufen und mitlesen, was zurückkommt.",[10,135,136],{},"Bei den Base44-Apps, die wir geprüft haben, ist das mit Abstand der häufigste\nFund. Es ist auch der, bei dem am meisten widersprochen wird, und der\nWiderspruch ist berechtigt, deshalb hier die ehrliche Fassung. Ein Platzhalter\nvor einer Adresse, die eine Anmeldung verlangt, ist eine schwache Meldung, denn\ndie andere Seite hat trotzdem keine Zugangsdaten zum Mitschicken. Ein\nPlatzhalter vor einer Adresse, die jedem antwortet, ist die eigentliche Sache,\nund etwa die Hälfte der von uns geprüften Base44-Apps hat mindestens eine\nAdresse, die einer schlichten Anfrage ohne Anmeldung Daten zurückgibt. Das sind\nzwei verschiedene Probleme unter einem Namen, und nach dem zweiten solltest du\nsuchen.",[10,138,139,140,144],{},"Keines davon ist ein Fehler, den du gemacht hast. Ein Platzhalter ist das, was\nein Build-Werkzeug ausliefert, wenn niemand ihm etwas anderes gesagt hat, meist\ndamit eine Vorschau-Domain und die Live-Domain beide funktionieren, während du\nbaust. Der ",[56,141,143],{"href":142},"\u002Fblog\u002Fcors-wildcard-security-risk","kurze Text dazu"," hat die Lösung,\nund die heißt: deine eigene Domain statt des Sterns eintragen.",[25,146,148],{"id":147},"dein-originalcode-veröffentlicht-neben-der-app","Dein Originalcode, veröffentlicht neben der App",[10,150,151],{},"Der zweithäufigste Fund, und der, den du ganz ohne Werkzeuge prüfen kannst.",[10,153,154,155,158],{},"Eine ",[20,156,157],{},"Source Map"," ist eine Datei, die das komprimierte JavaScript, das der\nBrowser ausführt, in das zurückverwandelt, was du geschrieben hast, samt\noriginalen Dateinamen, Kommentaren und Ordnerstruktur. Build-Werkzeuge erzeugen\nsie, damit ein Fehler im Produktivbetrieb auf eine echte Zeile zeigt statt auf\nSpalte 4.812 einer einzigen riesigen Datei. Dieser Teil ist wirklich nützlich.\nSie neben der App zu veröffentlichen ist der Teil, der dich etwas kostet.",[10,160,161],{},"Ungefähr drei von fünf der von uns geprüften Base44-Apps liefern ihre mit aus.\nEs fließen deswegen keine Daten ab, und deine App verhält sich in nichts anders,\nweshalb es monatelang unbemerkt bleibt. Was sich ändert, ist der Aufwand für\nalles andere: einen Endpunkt aus einem minimierten Bündel herauszupulen ist\nlangsame Fummelei, und deinen eigenen Quelltext zu lesen ist gar keine Arbeit.\nJeder andere Fund auf dieser Seite wird billiger zu finden, sobald dein Code\nlesbar ist.",[10,163,164,165,169],{},"Die Prüfung dauert unter einer Minute. Öffne deine Live-App, drücke F12 und\nschau in den Bereich Sources. Sieht der Dateibaum dort aus wie dein Projekt,\nmit den Namen, die du vergeben hast, sind die Maps mit der Auslieferung\nhinausgegangen, und der\n",[56,166,168],{"href":167},"\u002Fblog\u002Fsource-maps-exposed-in-production","ausführliche Text"," sagt dir, was zu\nändern ist.",[25,171,173],{"id":172},"wenn-du-deine-eigene-datenbank-angebunden-hast","Wenn du deine eigene Datenbank angebunden hast",[10,175,176],{},"Dann gilt der Vorteil vom Anfang dieser Seite für diesen Teil nicht, und die\nüblichen Regeln kommen zurück.",[44,178],{"alt":179,"caption":180,"src":181},"Eine mit Base44 gebaute App und ein anonymer Besucher, beide mit Pfeilen auf denselben Datenbankzylinder. Darunter zwei Ausgänge: mit RLS aus wird jedem geantwortet, mit RLS an nur deiner App.","Dieses Bild betrifft eine Datenbank, die du selbst angehängt hast. Bei den eigenen Daten von Base44 gibt es keinen Pfeil vom Fremden.","\u002Fguides\u002Fbase44\u002Fwho-the-database-answers-1600x820.png",[10,183,184],{},"Etwa ein Viertel der Base44-Apps, die wir prüfen, nennt ein eigenes\nSupabase-Projekt. Dieses Projekt antwortet dem Internet direkt, genau wie bei\njedem anderen Baukasten, Row Level Security liegt also jetzt bei dir: ein\nSchalter pro Tabelle, der Zeile für Zeile entscheidet, wer was lesen darf.",[10,186,187,188,191,192,196],{},"Zwei Dinge entscheiden, ob du sie hast. Supabase aktiviert sie ",[20,189,190],{},"standardmäßig\nfür Tabellen, die im Table Editor des Dashboards entstehen",", und nicht für\nTabellen, die per SQL entstehen, und so legen die meisten generierten Setups sie\nan. Und der Schalter ist nur die halbe Miete, denn eine Richtlinie, die allen\nerlaubt, lässt die Tabelle\n",[56,193,195],{"href":194},"\u002Fblog\u002Fsupabase-rls-on-but-table-still-public","offen, während das Dashboard sie als gesichert meldet",".",[10,198,199,200,204],{},"Mit dem Speicher verhält es sich genauso, und er wird leicht vergessen, weil er\nan einer anderen Stelle des Dashboards liegt als die Tabellenregeln. Ein als\nöffentlich markierter Bucket lässt sich von jedem auflisten und herunterladen,\nder von ihm weiß, ganz gleich ob deine App je auf eine Datei darin verlinkt, und\ndie ",[56,201,203],{"href":202},"\u002Fblog\u002Fsupabase-storage-bucket-public","Einstellungen, die darüber entscheiden",",\nliest man am besten einmal in Ruhe.",[25,206,208],{"id":207},"so-prüfst-du-deine-base44-app-in-etwa-zehn-minuten","So prüfst du deine Base44-App in etwa zehn Minuten",[10,210,211,214],{},[20,212,213],{},"Frag, was deine API anderen Seiten sagt."," Das steht am ehesten falsch und\nschaut sich niemand an, weil sich in deiner App nichts merkwürdig verhält, wenn\nes zu weit eingestellt ist.",[10,216,217,220],{},[20,218,219],{},"Öffne deine Live-App mit F12 und lies den Bereich Sources."," Stehen deine\neigenen Dateien dort unter ihren eigenen Namen, kann jeder andere sie genauso\nauflisten.",[10,222,223,226],{},[20,224,225],{},"Lies jeden Schlüssel in der App."," Frag dich bei jedem, ob du ihn auf deine\nStartseite stellen würdest. Lautet die Antwort nein, gehört er auf einen Server,\nund er muss an der Quelle getauscht werden, bevor er aus dem Code verschwindet.",[10,228,229,232],{},[20,230,231],{},"Öffne Authentication → Policies, wenn du ein eigenes Supabase-Projekt\nangebunden hast."," Jede Tabelle, bei der Row Level Security als deaktiviert\ngelistet ist, antwortet jedem mit der Projektadresse, und diese Adresse steckt\nin deiner App.",[10,234,235,238,239,196],{},[20,236,237],{},"Und dann schau von außen."," Die Schritte oben sagen dir, was eingestellt ist.\nWas ein Fremder tatsächlich erreicht, ist eine andere Frage, und die beantwortet\nunser kostenloser Scan. Er liest deine Live-Seite wie ein Besucher und gibt dir\nin etwa 20 Sekunden eine Note, ohne Konto: ",[56,240,242],{"href":241},"\u002F#scan","App prüfen",[244,245,246],"key-takeaways",{},[247,248,249,253,256,259,262,265],"ul",{},[250,251,252],"li",{},"Base44 hält deine Datenbank aus dem Internet. Die größte Ursache für abgeflossene Daten in schnell gebauten Apps steht dir nicht zur Verfügung.",[250,254,255],{},"Von außen kann das niemand nachprüfen, wir eingeschlossen. Keine Tür heißt kein Ergebnis, und kein Ergebnis ist kein grüner Haken.",[250,257,258],{},"Das Risiko wandert in den Browser: eine API, die jeder Website antwortet, und dein Quellcode neben der App veröffentlicht.",[250,260,261],{},"Ein Platzhalter vor einer Adresse ohne Anmeldung ist die Fassung, auf die es ankommt, und etwa die Hälfte dieser Apps hat eine.",[250,263,264],{},"Ein Schlüssel in deinem Bündel stammt meist von einem Dienst, den du selbst angebunden hast. Tausche ihn an der Quelle, dann lösche ihn aus dem Code.",[250,266,267],{},"Hängst du ein eigenes Supabase-Projekt an, gelten dafür die üblichen Regeln für Row Level Security und Speicher in vollem Umfang.",[10,269,270,271,275],{},"Fang mit den beiden an, die sich fast immer lohnen: was deine API anderen\nWebsites sagt, und ob dein Originalcode mit der App ausgeliefert wurde. Den Rest\ndeckt danach die ",[56,272,274],{"href":273},"\u002Fchecklist","10-Minuten-Sicherheitscheckliste"," ab.",{"title":277,"searchDepth":278,"depth":278,"links":279},"",3,[280,282,283,284,285,286],{"id":27,"depth":281,"text":28},2,{"id":70,"depth":281,"text":71},{"id":122,"depth":281,"text":123},{"id":147,"depth":281,"text":148},{"id":172,"depth":281,"text":173},{"id":207,"depth":281,"text":208},"\u002Fguides\u002Fbase44\u002Fis-your-base44-app-safe-de-1200x630.png","Reeves Sicherheitscheck-Karte für Base44-Apps, mit dem Base44-Logo auf einer weißen Kachel.","Base44 hält deine Datenbank vom Internet fern, was das größte Risiko schnell gebauter Apps beseitigt. Was bleibt, ist eine kurze Liste, und sie ist fast überall dieselbe.","md",[292,295,298,301],{"q":293,"a":294},"Wenn meine Datenbank nicht erreichbar ist, bleibt dann überhaupt etwas übrig?","Ja, aber eine kürzere Liste als bei den meisten. Deine App läuft weiterhin im Browser, und alles, was der Browser bekommt, ist öffentlich: der Code, jeder darin eingebaute Schlüssel und die Adressen, die er aufruft. Zu prüfen sind zwei Dinge: ob diese Adressen Anfragen von anderen Websites beantworten, und ob eine lesbare Kopie deines Quellcodes mit der Auslieferung hinausging.",{"q":296,"a":297},"Wenn das von außen niemand prüfen kann, woher weiß ich dann, dass meine Daten in Ordnung sind?","Von innen, denn nur dort gibt es diese Antwort. Weil Anfragen über Base44 laufen statt an eine öffentliche Adresse, liegt alles, was entscheidet, wer was lesen darf, in deiner App und in der Plattform, wo ein Fremder nicht daran rütteln kann. Die nützlichen Fragen lauten also: Wer kann sich registrieren, was sieht eine registrierte Person, und wurde irgendein Bildschirm in der Annahme gebaut, dass niemand hinschaut? Eine Prüfung von außen beantwortet nichts davon. Sie beantwortet die andere Hälfte: was jemand ganz ohne Registrierung erreicht.",{"q":299,"a":300},"Mein Scan sagt, meine API antwortet jeder Website. Habe ich das eingestellt?","Mit ziemlicher Sicherheit nicht mit Absicht. Ein Platzhalter ist das, was ein Build-Werkzeug ausliefert, wenn niemand ihm etwas anderes gesagt hat, meist damit eine Vorschauadresse und die Live-Adresse beide funktionieren, während du baust. Er überlebt bis in den Produktivbetrieb, weil in deiner App nichts kaputtgeht, wenn er zu weit steht. Wie viel er ausmacht, entscheidet die Adresse dahinter: Verlangt sie eine Anmeldung, ist es eine schwache Meldung. Antwortet sie jedem, ist es die Fassung, die du diese Woche angehen solltest.",{"q":302,"a":303},"Ich habe mein eigenes Supabase-Projekt an meine Base44-App angebunden. Ändert das etwas?","Es ändert das Wichtigste. Dein eigenes Projekt antwortet dem Internet direkt, die Row-Level-Security-Einstellung pro Tabelle liegt also jetzt bei dir, und sie ist bei jeder per SQL erstellten Tabelle standardmäßig aus. Das ist der eine Weg, auf dem das klassische Problem der offenen Datenbank doch eine Base44-App erreicht, und er ist zehn Minuten deiner Zeit wert.",[305,306,307,308,309],"ist base44 sicher","base44 sicherheit","base44 cors","base44 api schlüssel","base44 source maps",{},true,"\u002Fis-your-base44-app-safe","2026-08-30",{"title":5,"description":289},"is-your-base44-app-safe",[317,318,319],"Base44 stellt deine Datenbank nicht ins Internet. Der Fehler, an dem die meisten schnell gebauten Apps Daten verlieren, steht dir gar nicht zur Verfügung, und das ist ein echter Vorteil.","Das Risiko wandert dahin, was der Browser sieht: eine API, die jeder Website antwortet, und dein Originalcode, veröffentlicht neben der App. Diese beiden finden wir in fast jeder Base44-App.","Eine Base44-Datenbank kann niemand von außen prüfen, wir eingeschlossen. Hast du ein eigenes Supabase-Projekt angehängt, ist dieser Teil prüfbar und die Prüfung lohnt sich.","Y_iyENGo1cIj3p5d-spu9mkY5z9_lwCCDoTFmuxe-jA",1788681836865]