セキュリティ
チャットにキーは入れない。裏付けのないことは言わない。
Tofuが持つものと決して持たないもの、承認後にエージェントができること、デプロイ前に安全チェックが読む内容。どれも正確に説明し、それぞれの説明のすぐ横に限界も書き添えています。
- 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.
- key
- "SMS_API_KEY"
- secret
- true
- value
- null
- preview
- "••••c9d2"
The value went to the hosting provider, write-only.
Tofuに決して届かないものがある。だから、そこから漏れることはない。
いちばん漏れては困る値は、その値を持つサービスの手元に残ります。ホスティングプロバイダ、GoogleまたはGitHub、DNSプロバイダ、Stripeです。
シークレットの値
保存したシークレットの値
保存した値は、書き込み専用としてホスティングプロバイダへ直接送られます。Tofuが持つのは、名前、適用範囲、伏せ字にしたプレビューだけです。ダッシュボードでもTofuでも、値を読み出すことはできません。
パスワード
アカウントのパスワード
GoogleまたはGitHubでサインインします。Tofuはパスワードを設定も保存もしないので、なくすパスワードもありません。
外部サービスのキー
貼り付けたキーやトークン
Tofuは、サービスをつなぐためにキーやトークンを貼り付けるよう求めません。DNSをつなぐときも、プロバイダ側の画面であなたが承認するだけです。そこで生まれる認証情報は、Tofuが保管し、取り消しもTofuが行います。
カード番号
カード情報
Stripeのチェックアウトページで入力します。カード情報がTofuに届くことはありません。Tofuが保存するのは、プランとそのサブスクリプションの状態だけです。
例外は1つだけ。しかも、あなたの手にあります。マネージドデータベースでは、「データベースキーを表示」は所有者だけが使える操作で、求めに応じてキーの文字列を作り直します。実行するたびに監査記録が1行残ります。どのエージェントもこの操作を実行できません。データベースのパスワードを変更する機能はまだありません。
エージェントはあなたの代わりに動く。あなたが承認したときだけ。
コーディングエージェントは、テレビのアプリにサインインするときと同じやり方で接続します。エージェントがコードを表示します。あなたは、Tofuにサインインした自分のブラウザでそのコードを承認します。
コピーするセットアッププロンプトには、TofuクライアントとスキルそれぞれのサイズとSHA-256が書かれています。プロンプトは、エージェントにダウンロードした2つを照合させ、どちらかが一致しなければ何も実行せずに止まるよう指示します。
tofu · login
Approve this sign-in in your browser. The code is
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
エージェントが承認を求める
エージェントの中のTofuクライアントがサインイン要求を開始し、XXXX-XXXX-XXXX形式のコードを表示します。この要求は10分で失効します。照合してから承認する
Tofuにサインインしたときと同じアドレスで承認ページを開き、自分のエージェントが表示したコードと一致したときだけ、承認してください。7日間有効
Tofuクライアントは認証情報を、あなただけが読める形で保管し、Tofuのアドレス1つだけに紐付けます。Tofuが保存するのは、そのハッシュだけです。ダッシュボードの「コーディングエージェント」ページで、いつでも取り消せます。ローカルのファイルを削除しただけでは、取り消したことになりません。
承認した接続でできること
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.
読んだファイルを示す。読まなかったファイルも示す。
ビルドの前に、Tofuはこれからデプロイするファイルそのものを調べます。約束する範囲は、あえて狭くとどめています。Tofuが示すのは、実際に調べたことだけです。調べていないことは示しません。
エージェントが呼び出すツール
detectsetFrameworkscan
デプロイのたびに、危険な更新を止める
次のいずれかに当てはまると、デプロイは止まります。実際に使えるキーがコードに残っている。サインインのフォームが入力内容を別のサイトへ送信する。暗号資産ウォレットのシードフレーズ(復元用の単語列)を集めるコードがある。読み取れないファイルが1つでもあれば、デプロイは止まります。チェックするのは、これからアップロードするファイルそのものです。
AIモデルではなく、ルール
アップロードされた内容を、毎回同じルールで読みます。対象は、外部に露出したサービスキー、行レベルセキュリティが無効なテーブル、誰でも書き込めるポリシー、署名を検証していないStripeのwebhookです。既知のマルウェアの特徴も見ます。自分自身をデコードして実行するコードや、ダウンロードして実行するインストールスクリプトなどです。ほかの人に害が及ぶおそれがある問題は、デプロイを止めます。止めるのは、既知のマルウェアの特徴、フィッシング、漏えいしたキーです。自分のアプリだけに影響する選択は、警告として伝えるだけで、デプロイを止めることは決してありません。たとえば、誰でも編集できるテーブルです。
すべての結果に、調べた範囲を添える
結果には、次の項目が示されます。受け取ったファイルの数、そのうち読んだファイルの数、実行したチェック、そしてどのチェックも対象にしていないリスクの一覧です。この一覧が空になることはありません。
見つけた問題には、直し方も添える
問題ごとに、どのルールで見つかったか、どのファイルか、何が問題かを示します。修正用のプロンプトも付きます。そのままコーディングエージェントに渡せます。
- デプロイを止める問題がないとき、結果にはこう書かれます
- No blocking finding among the checks that ran.
- ファイルを1つも読めなかったとき、結果にはこう書かれます
- Nothing was inspected, so this is not a pass.
応答が返ってきたときだけ、公開する。最後に正常に動いていたバージョンは、そのまま動き続ける。
ヘルスチェック
アドレスを切り替える前に確認する
ビルドが終わると、Tofuはまずそのビルド専用のアドレスにアクセスし、応答があるかを確認します。応答が返ってきたときだけ、アプリのアドレスをそこに切り替えます。
ビルド失敗
ビルドが失敗しても、公開中のバージョンは変わりません
前のバージョンが動き続けます。ビルド中にデータベースのマイグレーションが失敗した場合も、ビルドが失敗するだけで、公開中のバージョンはそのままです。
復元
ビルドし直さずに、前のバージョンへ戻せます
復元すると、アプリのアドレスが正常に応答している以前のバージョンに切り替わります。データは一緒に戻りません。
あなたのデータの置き場所。名前で示し、推測させません。
この表はプライバシーポリシーの要約です。保存期間や削除のご依頼方法など、詳しくはプライバシーポリシーをご覧ください。
アプリの訪問者。 数えるだけで、追跡はしません。
アプリの設定でTofuのアクセス解析をオンにすると、ページビューはTofu自身のエンドポイントで数えます。アクセスデータはあなたのもので、ダッシュボードに表示され、ダッシュボードからオフにできます。Tofuがこのデータを自社の目的に使うことは一切ありません。
- 訪問者のブラウザにCookieを設定しません。
- アプリに第三者のアクセス解析スクリプトを追加しません。
- IPアドレスを保存しません。
- URL全体は保存しません。クエリ文字列とフラグメントは削除し、参照元はホスト名だけを残します。
- Do Not TrackやGlobal Privacy Controlが有効な場合、その閲覧は数えません。
- 保存期間はデフォルトで90日、長くても365日です。アプリを削除すると、このデータも一緒に削除されます。
脆弱性を見つけましたか?まずは知らせてください。
見つけた内容と再現手順をメールでお送りください。テストはご自身のアカウントとアプリだけでお願いします。公開する前に、修正する時間をください。
同じメールアドレスは/.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
Tofuがカバーしていないこと
マルウェアがないという保証ではありません。 安全チェックが見るのは、既知のパターンに当てはまるかどうかだけです。意図は判断しません。アプリが動き出してから何をするか、データベースの中身、
package.jsonに直接書かれた以外の依存関係は調べません。より詳しい項目別のセキュリティレポートはありません。 まだ作っていません。ダッシュボードには、サンプルの検出結果ではなく、その旨を表示しています。
エージェントの接続は、プロジェクト単位ではなく、読み取り専用でもありません。 承認したエージェントは、あなたのアカウントで許可されているすべてのプロジェクトと操作を扱えます。使い終わったら、ダッシュボードの「コーディングエージェント」ページで接続を取り消してください。
チェックサムは署名ではありません。 あらかじめ固定したSHA-256で検出できるのは、ダウンロードしたファイルの不一致や破損です。信頼できるのは、Tofu自身のサイトからHTTPSで届く範囲までです。そのため、配布サーバーが侵害された場合は、チェックサムでは検出できません。
ログの伏せ字は、できる範囲までです。 Tofuは、表示するログから認証情報らしい文字列を取り除きます。ただし、Tofu自身が書き込み専用のシークレットの値を読み出せないため、ログに残ったすべての箇所を見つけることはできません。アプリは自分のシークレットを出力してはいけません。
アプリを削除しても、アップロードしたソースコードは残ります。 アーカイブは、あなたが削除を依頼するまで、Tofuの非公開ストレージに残ります。
アカウントは自分で削除できません。 hello@trytofu.aiまでメールしてください。ご依頼は手作業で対応し、削除できたものと、削除できなかったものをお伝えします。
セキュリティ認証は取得していません。 TofuはSOC 2やISO 27001の認証を受けておらず、監査レポートも公開していません。サービスがGDPRに準拠していると主張することもありません。
作りたいアプリを言葉で伝えるか、エージェントが作ったアプリを持ち込むだけ。Tofuがオンラインにします。
どのコーディングエージェントでも使えます
© 2026 Tofu
trytofu.ai
英語版からの翻訳です。内容に違いがある場合は、英語の原文が優先されます。