ハコヅミを作る #36:利用規約とプライバシーポリシーを、実装と照らして書く
前回(#35)で、セキュリティの見直しが済みました。公開までに要るものの2つ目は、利用規約とプライバシーポリシーです。
人のデータを預かるなら、何を預かり、どう扱うかを、書いて示す必要があります。Google のログインを一般に公開するときにも、プライバシーポリシーの URL が求められます。
- 文は、Claude Code に下書きしてもらい、自分で全文を読んで決める
- 「預かる情報」は、実装と1つずつ照らす
- お問い合わせの窓口は、このブログのフォームを使う
下書きは任せる。決めるのは自分
規約の文を、一から自分で書くのは大変です。今の実装(何を預かり、どう消すか)は Claude Code がいちばんよく知っているので、下書きを任せました。
ただし、Issue には、はっきり書いておきました。
人が全文を読んで、直す・決めることが前提(法律の専門家の確認ではない)
下書きの中で、自分が決めることは、プルリクエストに一覧にしてもらいます。今回は、こういう点でした。
| 決めること | 決めた内容 |
|---|---|
| 運営者の表記 | 「Jiru-Labo(じるラボ)」。個人の名前は書かない |
| サービスを終えるときの知らせ | 90 日前までに知らせる。それまでは、データを書き出せる |
| 凍結の条文 | してはいけないことをしたときは、前もって知らせずに凍結できる |
| 責任の範囲 | わざと、または重い落ち度がある場合を除いて、責任を負わない |
| 裁判所 | 運営者の住所地を管轄する裁判所(地名は出さない) |
責任の範囲は、「いっさい責任を負いません」と書きたくなるところです。Claude Code によると、そう書くと、消費者契約法で無効になりうるそうです。こういう指摘は、1人では気づけません。
文は、データベースには持たず、ページの中に直接書きました。変えるときは、プルリクエストで行います。履歴が Git に残るので、「いつ、どこを変えたか」があとから分かります。
「預かる情報」を、実装と照らす
プライバシーポリシーで、いちばん気をつけたのは、書いたことと、実際にやっていることが食い違わないことです。
Issue の段階では、預かる情報を、こう考えていました。
- Google から受け取るもの:メールアドレス、名前、アカウントの識別子
- 自動で記録されるもの:ログインの記録(日時、IP アドレス、ブラウザの種類)
Claude Code は、文を書く前に、開発用のデータベースを確かめました。読み取りだけで、件数を数える問い合わせです。すると、思っていたのと違うところが出てきました。
| 思っていたこと | 実際 |
|---|---|
| Google から受け取るのは、メールアドレスと名前 | プロフィールの画像の URL と、ログインのトークンも保存されていた |
| ログインの記録に、IP アドレスが入る | 開発環境では、入っていなかった(列はある) |
ログインの仕組み(Better Auth)が、自分の知らないうちに保存していたものです。画面には出していないので、気づいていませんでした。ポリシーには、どちらも書きました。IP アドレスは、「含まれることがあります」としています。
もう2つ、実装から分かって、書き足したことがあります。
- Google Fonts:画面のフォントを読み込むとき、ブラウザから Google へ、IP アドレスなどが送られる
- このブログの解析のクッキー:前回見つけたもの。ハコヅミにも送られるが、読まないし、使わない
2つ目は、書かずに「解析のクッキーは使いません」とだけ書く手もありました。ただ、開発者ツールを開いた人には、クッキーが見えます。書いてあることと見えるものが食い違うほうが、よくないと考えました。

預かる情報は、データベースを確かめてから書いた
消えるまでの時間
退会すると、データと画像は、すぐに消えます(#30)。ただし、Cloudflare のデータベースには、障害のときにもとに戻すための記録があります。そこには、しばらく残ります。
最初の下書きは、「最長で 30 日」でした。Cloudflare の有料プランの数字です。今は無料プランで行くつもりなので、7 日に直してもらいました。
ここには、小さな落とし穴があります。将来、有料プランに変えると、記録が残る日数が延びます。そのとき、文が 7 日のままだと、実際より短い日数を約束していることになります。「プランを変えるときは、先に文を直す」と、CLAUDE.md に書いておきました。
リンクを置く場所
2つのページへのリンクは、次の場所に置きました。
- フッター(全部の画面):「利用規約」「プライバシーポリシー」「お問い合わせ」
- ログインの画面:「ログインすると、利用規約とプライバシーポリシーに同意したものとみなします。」
- アカウントの画面:3つのリンク
- 凍結の画面:お問い合わせへのリンク

ログインのボタンの下の、同意の文。フッターには3つのリンク
1つ、Issue に書いていなかったことがあります。凍結された人は、凍結の画面のほかは、何も開けません(#29)。そのままだと、フッターの「利用規約」を押しても、凍結の画面に戻されます。凍結の根拠は、規約に書いてあります。凍結された人も、2つのページは読めるようにしました。
お問い合わせは、このブログのフォームで受ける
#34で決めたとおり、ハコヅミの中には、お問い合わせのフォームを作りません。このブログのお問い合わせフォームを使います。
フォームの側に、次の直しを入れました。
- 「お問い合わせの対象」の選択欄。ハコヅミから来たときは、ハコヅミが選ばれた状態で開く
- ハコヅミを選ぶと、「ログインに使っている Google アカウントのメールアドレスを入れてください」と出る
- 届くメールの件名の先頭に、
[ハコヅミ]と入る

ハコヅミのリンクから開くと、ハコヅミが選ばれた状態になる
フォームは別のサイトなので、誰がログインしているかは分かりません。メールアドレスを URL に付けて渡せば、入力の手間は省けます。ただ、個人の情報を URL に付けることになります。URL は、履歴やログに残ります。付けるのは、サービスの名前だけにしました。
フォームの送信を受ける仕組み(Cloudflare Workers)も、直しています。ハコヅミを公開すると、フォームを見る人が増えます。入力の長さの上限と、送信の回数の制限(1分に 5 回)を足しました。中身を確かめる処理は関数に切り出して、テストを書いています。フォームを作ったとき(こちらの記事)には、テストがありませんでした。
おわりに
- 規約の下書きは任せてよい。ただし、全文を読んで決めるのは自分
- 「人が決めること」は、一覧にしてもらう。文の中に埋もれさせない
- プライバシーポリシーは、実装と照らして書く。使っている仕組みが、知らないうちに保存しているものがある
- 見える人には見えるものは、正直に書く
- 外の事情(プランなど)で変わる数字は、変わるときに文を直す、と決めておく
- 個人の情報は、URL に付けない
次回は、ログインしていない人に見せる、サービスの紹介のページです。