Sicherheit

Keine Schlüssel im Chat. Keine Behauptungen ohne Beleg.

Was Tofu speichert und was nie, was Ihr Agent tun kann, sobald Sie ihn freigeben, und was die Sicherheitsprüfung vor einer Bereitstellung genau liest — mit den Grenzen direkt neben den Aussagen.

franks-kitchen / Environment variables
  • MAIL_API_KEYsecret••••Qm7xProdPreview
  • SMS_API_KEYsecret••••c9d2Prod
  • NEXT_PUBLIC_SITE_URLhttps://frankskitchen.comProdPreviewDev
  • DATABASE_URLmanaged••••••ProdPreview

Secrets are write-only — once saved, the value is hidden and never shown again.

What Tofu keeps
key
"SMS_API_KEY"
secret
true
value
null
preview
"••••c9d2"

The value went to the hosting provider, write-only.

Was Tofu nie hat

Manches erreicht Tofu nie. Also kann es von dort nicht abfließen.

Die empfindlichsten Werte bleiben bei dem Dienst, dem sie gehören: Ihr Hosting-Anbieter, Google oder GitHub, Ihr DNS-Anbieter, Stripe.

  • Secret-Werte

    Der Wert eines Secrets, das Sie speichern.

    Er geht direkt an den Hosting-Anbieter und ist dort nur schreibbar. Tofu behält den Namen, die Geltungsbereiche und eine maskierte Vorschau; weder das Dashboard noch Tofu können den Wert zurücklesen.

  • Passwörter

    Ein Passwort für Ihr Konto.

    Sie melden sich mit Google oder GitHub an. Tofu legt für Sie nie ein Passwort an und speichert keines; es gibt also keines, das verloren gehen könnte.

  • Anbieter-Schlüssel

    Ein Schlüssel oder Token, den Sie einfügen.

    Nichts in Tofu verlangt von Ihnen, einen Schlüssel oder Token einzufügen, um einen Anbieter zu verbinden. DNS verbinden Sie, indem Sie auf der Seite des Anbieters selbst eine Freigabe erteilen; die daraus entstehenden Zugangsdaten verwahrt Tofu und kann sie widerrufen.

  • Kartennummern

    Ihre Kartendaten.

    Sie geben sie auf der Bezahlseite von Stripe ein, und sie erreichen Tofu nie. Tofu speichert Ihren Tarif und dessen Abo-Status.

Eine Ausnahme gibt es, und sie liegt bei Ihnen. Bei einer verwalteten Datenbank gibt es die Aktion Datenbankschlüssel anzeigen, die nur der Eigentümer ausführen kann; sie baut diesen Schlüssel auf Anfrage neu auf. Jeder Aufruf schreibt eine Zeile ins Audit-Protokoll; kein Agent kann diese Aktion ausführen, und das Rotieren des Passworts ist nicht umgesetzt.

Die Vollmacht Ihres Agenten

Ihr Agent handelt für Sie. Erst, nachdem Sie ihn freigegeben haben.

Ein Coding-Agent verbindet sich so, wie sich eine TV-App anmeldet: Er zeigt einen Code, und Sie geben diesen Code in Ihrem eigenen Browser frei, angemeldet bei Tofu.

Der Einrichtungs-Prompt, den Sie kopieren, enthält die Größe und den SHA-256-Wert von Client und Skill. Er fordert Ihren Agenten auf, beide Downloads zu prüfen und anzuhalten, ohne etwas auszuführen, wenn einer davon nicht übereinstimmt.

Your agent

tofu · login

Approve this sign-in in your browser. The code is

7F3A-C09B-21DE

app.trytofu.ai/dashboard/agent?code=7F3A-C09B-21DE

Approve only a code your own agent printed.

Connect Claude Code (MCP)?

Check that this code matches the one in your coding agent:

7F3A-C09B-21DE

Approve this connectionMhello@trytofu.ai
  1. Ihr Agent fragt an

    Der Tofu-Client in Ihrem Agenten startet eine Anmeldeanfrage und zeigt Ihnen einen Code im Format XXXX-XXXX-XXXX. Die Anfrage verfällt nach zehn Minuten.
  2. Sie vergleichen, dann geben Sie frei

    Öffnen Sie die Freigabeseite unter der Tofu-Adresse, bei der Sie angemeldet sind, und geben Sie nur frei, wenn der Code mit dem übereinstimmt, den Ihr eigener Agent ausgegeben hat.
  3. Die Freigabe gilt sieben Tage

    Der Client bewahrt die Zugangsdaten vertraulich auf, gebunden an eine Tofu-Adresse, und Tofu speichert davon nur den Hash. Widerrufen können Sie sie jederzeit auf der Seite „Coding-Agent“ im Dashboard — nur lokale Dateien zu löschen, reicht nicht.

Was eine freigegebene Verbindung tun kann

This connection can upload your app’s source or import it from a public GitHub repository, download your app’s code into a new folder on your computer when the agent runs there, get the link that opens your app in Tofu’s builder, which you open yourself, run the safety check, deploy it — its build runs any migration step it has — once you have a hosting plan, save and remove your app’s public settings — an address, a feature flag, a key meant to be public — when the agent runs on your computer, but never a hidden value, which you type yourself in Keys & settings, create the app’s managed database, on its own or in the same call as a deploy, which Tofu runs and pays for as part of your plan, read the app’s build and runtime diagnostics, restore a previous deployment, connect, verify, release or withdraw the authorization for a domain you already own, read domain quotes and prepare a dashboard link for you to review a fresh price, agreements and payment when the agent runs on your computer — it cannot place an order or submit payment, read the stored status of domains you bought through Tofu and ask the registrar to send its confirmation email again to the registrant, without seeing your owner details or changing renewal settings, read and add DNS records on a domain you bought through Tofu, and delete one of yours — never its mail (MX) or verification (TXT) records, which stay with you, read your app’s own traffic — the first read for an app that has no counter yet issues its key — and turn that counter on or off, read whether your app is answering its visitors, and turn Tofu’s emails about it on or off, change how your app’s users sign in and how its sign-in email is sent, see who has an account in your app, add a person by email or remove one — which signs them out — choose whether anyone can sign up or only the people you add, and make the app private — only people with a link can open it — or open to everyone again, send a short message to up to ten of your app’s users, from your app’s own email address, get an invite link that lets one person into your private app — you hand the link out yourself, and the first person who opens it gets in for up to 30 days — list the links you made and turn one off again, choose who can open your app — anyone with the link, only people you list by email, or anyone with a code you share, which puts a sign-in page in front of the whole app — add or remove those people, make a new code, sign everyone out, and keep exact paths open for services like webhooks, connect your app to your own Stripe account when the agent runs on your computer — you install Tofu’s app on Stripe’s own page — then create payment links there, pass their payment events to the app or disconnect it, with the money going straight to you and nothing in its reach that moves money out of your account, set up email your app sends from its own address, pause it, give it a new key or remove it, when the agent runs on your computer — Tofu writes the app’s sending key into its settings, and nothing is sent until the app sends email itself, restore an archived database into a new one Tofu runs and pays for as part of your plan, and hand you a short-lived link to download its archive, keep a database Tofu warned you about from being archived for going unused, list your database’s daily backups and ask a person at Tofu to put it back to one, which loses what was saved after it, see which of your app’s database setup steps are done, choose whether Tofu runs them for an app, and mark one as done so it never runs, when the agent runs on your computer, delete an app — the source you uploaded is kept until you ask Tofu to erase it — or its database, with nothing kept, send Tofu’s team a problem report you approved word for word, with your app’s status attached, sign in to Tofu, read the account’s id and email address, report the plan and the account’s GitHub state, and turn automatic updates off.

It cannot buy, renew or transfer a domain, submit a payment, read domain owner details, an environment value or a database password or connection string, change your plan or billing, or import a private repository from GitHub. Those stay with you.

Your agent acts on your instructions, and Tofu tells it to ask for your agreement before any call that spends money, writes to a live service or destroys something. Tofu can’t see your conversation with it, so it can’t check that the agent asked: connect only agents and apps you trust, and disconnect any of them on the Coding agent page.

Die Sicherheitsprüfung

Sie sagt, was sie gelesen hat. Und was nicht.

Vor einem Build prüft Tofu genau die Dateien, die bereitgestellt werden sollen. Das Versprechen ist bewusst eng gefasst: Tofu sagt genau, was es angesehen hat, und nie mehr.

Tools, die Ihr Agent aufruft

  • detect
  • setFramework
  • scan

Ein Stolperdraht vor jeder Bereitstellung

Ein Live-Schlüssel, der im Code steht, ein Anmeldeformular, das Daten an eine andere Website sendet, oder ein Seed-Phrasen-Sammler stoppt die Bereitstellung, und eine Datei, die sich nicht lesen lässt, ebenso. Geprüft werden genau die Dateien, die hochgeladen werden sollen.

Regeln, kein Modell

Deterministische Regeln lesen den Upload: ein offengelegter Service-Schlüssel, eine Tabelle mit deaktivierter Row-Level Security, eine Zugriffsregel, die jedem das Schreiben erlaubt, ein nicht verifizierter Stripe-Webhook — und bekannte Malware-Muster, etwa Code, der sich selbst dekodiert und ausführt, oder ein Installationsskript, das etwas herunterlädt und ausführt. Ein Fund, der anderen Menschen schaden könnte, blockiert die Bereitstellung: ein bekanntes Malware-Muster, Phishing, ein offengelegter Schlüssel. Entscheidungen, die nur Ihre eigene App betreffen, wie eine Tabelle, die jeder bearbeiten kann, werden als Warnungen gemeldet und blockieren nie.

Jedes Ergebnis zeigt seine Abdeckung

Wie viele Dateien von wie vielen übergebenen gelesen wurden, welche Prüfungen liefen und die Liste der Risiken, nach denen keine Prüfung sucht. Diese Liste ist nie leer.

Ein Fund, mit dem Sie etwas anfangen können

Jeder Fund nennt seine Regel und seine Datei, sagt, was er bedeutet, und enthält einen Korrektur-Prompt, den Sie direkt an Ihren Coding-Agenten weitergeben können.

Wenn nichts blockiert, steht im Ergebnis
No blocking finding among the checks that ran.
Wenn keine Datei gelesen wurde, steht dort
Nothing was inspected, so this is not a pass.
Bevor etwas online geht

Erst live, wenn sie antwortet. Die letzte funktionierende Version bleibt online.

  • Erreichbarkeitsprüfung

    Geprüft, bevor die Adresse umzieht.

    Ein fertiger Build wird zuerst an seiner eigenen Bereitstellungsadresse aufgerufen. Die Adresse Ihrer App wechselt erst dann auf ihn, wenn er antwortet.

  • Fehlgeschlagene Builds

    Ein fehlgeschlagener Build ändert nichts am laufenden Betrieb.

    Die vorherige Version bleibt weiter erreichbar. Eine Datenbankmigration, die im Build scheitert, lässt den Build genauso scheitern.

  • Zurücksetzen

    Einen Schritt zurück, ohne neuen Build.

    Beim Zurücksetzen zeigt Ihre Adresse wieder auf eine frühere Bereitstellung, die fertig ist und antwortet. Ihre Daten werden dabei nicht mit zurückgesetzt.

Was Tofu speichert, und wo

Wo Ihre Daten liegen. Benannt, nicht angedeutet.

Eine Zusammenfassung der Datenschutzerklärung. Die vollständige Liste steht dort – auch, wie lange jede Angabe aufbewahrt wird und wie Sie uns um Löschung bitten können. Datenschutzerklärung lesen.

WasWoWas das bedeutet
Ihr KontoSupabaseE-Mail, der Anbieter, mit dem Sie sich angemeldet haben, sowie Name und Bild, die er weitergibt. Kein Passwort.
Projekte und BereitstellungenTofus VerwaltungsdatenbankNamen, erkanntes Framework, Verlauf, Status und Einstellungen – jeder Zugriff bleibt auf das Konto beschränkt, dem die Daten gehören.
Quellcode, den Sie übergebenPrivater SpeicherWird nie öffentlich ausgeliefert. Bleibt für Build und Bereitstellung vorgehalten, bis Sie uns um Löschung bitten.
Die veröffentlichten Dateien einer statischen AppCloudflareWas eine App im statischen Hosting von Tofu veröffentlicht und ihren Besuchern unter ihrer Adresse auf ontofu.app ausliefert.
UmgebungsvariablenNamen: Tofu · Werte: VercelTofu speichert Namen, Geltungsbereiche und die Secret-Kennzeichnung. Den Wert eines Secrets speichert ausschließlich der Hosting-Anbieter, und zwar nur schreibbar. Er lässt sich nicht wieder auslesen.
Build- und AnfrageprotokolleVon VercelWas der Hosting-Anbieter zurückgibt – ein aktuelles Zeitfenster, kein Archiv.
Tarif und AbrechnungStripeIhr Tarif und der Status Ihres Abos. Kartendaten bleiben auf der Bezahlseite von Stripe.

Besucher Ihrer App. Gezählt, nicht verfolgt.

Wenn Sie für eine App den Zugriffszähler von Tofu einschalten, zählt er Seitenaufrufe an Tofus eigenem Endpunkt. Die Daten gehören Ihnen: Sie werden in Ihrem Dashboard angezeigt, der Zähler lässt sich von dort abschalten, und Tofu nutzt die Daten für nichts Eigenes.

  • Im Browser Ihrer Besucher wird kein Cookie gesetzt.
  • In Ihre App wird kein Analytics-Skript eines Drittanbieters eingebunden.
  • Es wird keine IP-Adresse gespeichert.
  • Keine vollständige URL: Query-String und Fragment werden verworfen, der Referrer auf seinen Hostnamen gekürzt.
  • Do Not Track und Global Privacy Control verhindern, dass ein Aufruf gezählt wird.
  • Standardmäßig 90 Tage aufbewahrt, nie länger als 365 Tage, und zusammen mit der App gelöscht.
Sicherheitslücke melden

Eine Lücke gefunden? Sagen Sie es uns zuerst.

Schreiben Sie uns, was Sie gefunden haben und wie sich das Problem nachvollziehen lässt. Testen Sie bitte nur Ihr eigenes Konto und Ihre eigenen Apps, und geben Sie uns die Chance, das Problem zu beheben, bevor Sie es veröffentlichen.

Dieselbe Adresse steht in /.well-known/security.txt, wo die Werkzeuge von Sicherheitsforschern zuerst nachsehen.

/.well-known/security.txt
Contact: mailto:hello@trytofu.ai
Expires: 2027-09-27T00:00:00.000Z
Preferred-Languages: en
Canonical: https://trytofu.ai/.well-known/security.txt
Policy: https://trytofu.ai/security#report

Was das nicht abdeckt

  • Keine Malware-Garantie. Die Sicherheitsprüfung erkennt die Muster, die sie kennt, nicht die Absicht. Sie sieht nicht, was eine App im Betrieb tut, nicht den Inhalt ihrer Datenbank und keine Abhängigkeiten außer den direkten Einträgen in package.json.

  • Kein tiefergehender Sicherheitsbericht mit Einzelbefunden. Diesen Bericht gibt es nicht. Das Dashboard sagt das, statt Beispielbefunde zu zeigen.

  • Eine Verbindung ist weder auf ein Projekt beschränkt noch nur lesend. Ein freigegebener Agent umfasst jedes Projekt und jede Aktion, die Ihr Konto erlaubt. Widerrufen Sie ihn auf der Seite Coding-Agent im Dashboard, wenn Sie fertig sind.

  • Eine Prüfsumme ist keine Signatur. Die fest hinterlegte SHA-256-Prüfsumme erkennt einen nicht übereinstimmenden oder beschädigten Download. Die Vertrauensgrenze ist HTTPS von Tofus eigener Adresse; einen kompromittierten Verteilungsserver kann die Prüfsumme deshalb nicht erkennen.

  • Das Maskieren in Protokollen ist nicht lückenlos. Tofu filtert Text, der wie Zugangsdaten aussieht, aus den Protokollen, die es anzeigt, kann aber ein Secret, das nur schreibbar gespeichert ist, nicht auslesen, um jede Kopie zu finden. Eine App darf ihre eigenen Secrets nicht ausgeben.

  • Beim Löschen einer App bleibt ihr hochgeladener Quellcode erhalten. Das Archiv bleibt im privaten Speicher, bis Sie uns um Löschung bitten.

  • Keine Kontolöschung per Selbstbedienung. Schreiben Sie an hello@trytofu.ai. Anfragen werden von Hand bearbeitet, und wir sagen Ihnen, was gelöscht wurde und was nicht.

  • Keine Zertifizierung. Tofu ist nicht nach SOC 2 oder ISO 27001 zertifiziert, veröffentlicht keinen Prüfbericht und beansprucht für den Dienst keine DSGVO-Konformität.

Einen Prompt einfügen. In 10 Minuten online.

Ihre App samt Datenbank, Ihre Domain und Ihre Anmeldung – in etwa 10 Minuten mit dem Agenten, den Sie schon nutzen.

Kostenlos starten