EmDashへの移行更新日
#なぜフォーム回答をサーバーに保存しない設計が勧められるのですか?
回答をサイト側にも残しておけば、メールを見落としても後から探せます。そう考えて保存をオンのままにしている人は多いでしょう。ただ、溜めた回答は、サイトの運営元が不正アクセスを受けたときにまとめて読まれてしまう場所でもあります。
保管する期間が長くなるほど、不正アクセスを受けた際の被害は広がります。2026年10月に公表されたStudioの事案では、ダッシュボードに保存されていたフォーム回答が流出の可能性がある情報に含まれました。暗号化して保存していた回答も、復号に使う鍵が同じ不正アクセスで読み出されたため、内容を知られた可能性があります。「フォームの結果をStudioに保存」を途中で無効にした人も、それまでに届いていた回答はダッシュボードに残っていたので、対象から外れていません。設定をオフにしても過去の回答までは消えないわけですね。
暗号鍵を暗号化したデータとは別の場所に置く工夫もあります。それでも、回答を最初から溜めなければ、読まれる回答そのものが手元にありません。
#StudioのフォームはEmDashで何に置き換えますか?
Studioで作っていたフォームは、EmDashへ移行する際にどのような仕組みへ置き換えることになるのでしょうか。回答がどこに行くかで、保存しない設計にしやすいかが変わります。
| 置き換え先 | できること | 回答の行き先 |
|---|
| EmDash公式のフォームプラグイン | フォーム作成、回答の収集、通知の送信 | 収集する前提の作り |
|---|
| Cloudflare Workersとメール送信 | 受け取った内容をメールで送る | 送るだけなら溜めない作りにできる |
|---|
| Googleフォームの埋め込み | フォームと回答の管理を外部に任せる | 任意でスプレッドシートに集まる |
|---|
EmDash公式リポジトリの「@emdash-cms/plugin-forms」はフォーム作成、回答収集、通知送信を目的とした拡張機能で、取得したpackage.jsonのバージョンは0.2.11となっています。保存を止める設定があるかは、入れる前にリポジトリで確かめてください。
サイト側に何も溜めたくないなら、Workersで受け取ってメールを送る作りがいちばん素直です。Cloudflare Workersにはバインディングを通じて直接メールを送るAPIがあり、回答をデータベースへ溜めずに通知する処理を記述できます。もっとも、送信APIの存在だけでログや回答の非保存が保証されるわけではありません。
Googleフォームを埋め込む場合は、回答がGoogle側に集まります。ちなみに、過去の回答データは、回答一覧画面の右上にある3点メニューから、すべての回答をCSV形式で手元に保存できます。Studioにある過去の回答は、どの置き換え先を選んでも自動では移りません。
#EmDashのフォームで自動返信メールは送れますか?
問い合わせた人に「受け付けました」と返すメールは、Studioで使っていたなら外したくない機能ですよね。EmDashでも送れますが、公式プラグインに任せるより、自分で送る作りにしたほうが話が早いです。
EmDash公式プラグインの「@emdash-cms/plugin-forms」では、匿名訪問者からの回答受付、通知送信、データ出力といった機能が用意されています。でも、この通知が送信者への自動返信まで含むのかは、説明からは読み取れません。運営者向けの通知だけかもしれないので、自動返信の機能として当てにしないほうがいいでしょう。
サーバーに回答を残さずに自動返信を行うには、外部のメール配信APIを組み合わせる方法が役立ちます。Cloudflare WorkersからはResendを使ったメール送信ができ、送信先、件名、本文をコードで指定します。
自動返信を付けるときは、送信前の検証を省けません。入力されたアドレスにそのまま返信する仕組みは、ボットに悪用されると他人あてのメールを大量に送ってしまいます。Cloudflare Turnstileを使う場合、画面へウィジェットを置くだけでは保護になりません。サーバー側からSiteverify APIを呼び出してトークンの正当性を検証する処理を入れて、不正な連続送信を遮断します。検証に通った送信だけに返信してください。
#Studioのフォーム回答データをEmDashへ引き継ぐべきですか?
Webサイトを移転する際、過去の記事やお知らせは新しい環境へ引き継ぐのが一般的ですが、フォームに溜まった過去の回答データは同じように扱うべきではありません。安易に古い個人データを移行先へ持ち込むと、管理の手間と漏えいの危険を抱え直すことになります。
法令の基準では、利用する必要がなくなった個人データは遅滞なく消去する努力義務が課されています。法令で保存期間が定められている場合を除き、対応が終わった問い合わせデータをいつまでも持ち続ける理由は乏しいといえますね。
まだ対応中の案件や、取引の記録として残す回答だけは書き出して保管します。Studioでの手順は回答のダウンロードと削除にあります。
- 回答一覧画面の右上にある3点メニューから、すべての回答をCSV形式でダウンロードする
- 消したい回答のステータスを「ゴミ箱」に変える
- ゴミ箱タブで対象を選び、「完全に削除」をクリックする
ゴミ箱に移しただけでは消えていないので、3まで進めてください。
書き出したCSVも個人データです。不要になった個人データを消去する際は、復元不可能な手段で消去する必要があり、作業を外部へ委託する場合も適切な監督を行わなければなりません。外部の制作会社などへ移転作業を依頼するときも、業務に不要な個人データを渡さない配慮を徹底します。委託契約には、双方で合意した安全管理措置や、データの取り扱い状況を委託元が把握できる内容を盛り込むことが望ましいとされています。なお、個人データの漏えい等が発生して個人の権利利益を害するおそれがある場合には、個人情報保護委員会への報告や本人通知が必要になりますが、通常の移転作業そのものに義務付けられた手続きではありません。
こんな聞き方も
- EmDashでフォーム回答をサーバーに保存しない設計にできますか?
- emdash フォーム 回答 保存しない
- EmDashのフォームで自動返信メールは送れますか?
- emdash フォーム 自動返信 メール
- StudioのフォームはEmDashで何に置き換えますか?
- studio フォーム emdash 置き換え
- Studioのフォーム回答データをEmDashへ引き継ぐべきですか?
- studio フォーム 回答 引き継ぐ べき
あわせて知りたい(関連する疑問)
Qメールで届くだけのフォームにすると、回答はどこにも残らないのですか?
Webサーバーに回答を保存しなければ漏えいの心配がなくなる、と考えてメール通知だけの仕組みにしようとする方がいます。データベースへ回答を溜めない形にすれば、Webサイトへの不正アクセスでデータをごっそり盗まれる事態は避けられますが、回答がどこにも残らない状態になるわけではありません。
送信された問い合わせ内容は、通知先として指定したメールボックスへ届き、通常のメールとして保管されます。保管場所がWebサーバーからメールサーバーへ移ったに過ぎません。メールアカウントのパスワード管理や二要素認証が不十分であれば、アカウント侵入によって顧客情報が外部へ漏れる危険は依然として残ります。
たとえば、Google Workspaceなら、管理者がメールの保存日数と期限後の削除方法を決められます。保存期限が終了しても、次の定期処理まで即座に削除されないケースがある点には留意しておきましょう。
もうひとつ見直したいのが、通知を受け取るアドレスを誰が開けるかです。Exchange Onlineの共有メールボックスでは、Full Access権限を持つ人がメールを読んだり変更したりできます。担当を外れた人の権限が残っていると、その人も回答を読めてしまいます。
また、Cloudflare Email Routingを利用して特定アドレスへ転送する場合でも、最終的な受信先で誰がどのようにデータを管理するのかを決めておく必要がありますね。
Studioでも通知先を設定した上で「フォームの結果をStudioに保存」を無効化できますが、設定後はテスト送信を行い、メール受信とダッシュボードへの非保存を確認する手順が基本です。EmDashに置き換えたあとも、同じように公開サイトから試しに送り、メールが届くこととサイト側に記録が無いことの両方を見ておきましょう。
Q外部フォームを埋め込めばEmDash側の対策は不要ですか?
自前のサーバーで回答を扱わずに済むよう、Googleフォームなどの外部サービスをサイトに埋め込めば、EmDash側でのセキュリティ対策は一切不要になるのでしょうか。不要にはなりません。外部フォームに任せると回答の保管先がそのサービスに移るだけで、守る場所が増えます。
Googleフォームでは回答をフォーム内で確認できるだけでなく、連携させたGoogleスプレッドシートにも保存できます。しかし、フォームと連携シートの閲覧や編集の権限を変更・削除するときは、両方の権限を個別に更新する仕様です。フォームの共有を止めたのに、シートを開ける人が残っている。そういう状態は起こりやすいので、担当者が替わったときは両方を見直してください。
またGoogleフォームでは、回答結果の概要表示を有効にすると、フォームへ回答できる人が質問ごとの回答全文やグラフを閲覧できるようになります。問い合わせフォームで有効にすると、ほかの人の問い合わせ内容が見えてしまいます。
一方、埋め込み先となるEmDash自体の防御を怠るわけにはいきません。認証や権限をすり抜ける不具合、管理画面やAPIでの権限昇格は、EmDashのセキュリティ方針で脆弱性の報告対象になっています。CMSのアカウントが不正侵入を受けると、埋め込みコードを偽のフォームへ差し替えられる危険が生じます。フォームを外に出しても、管理画面のログイン権限とEmDash本体の更新は、これまでどおり自分で見ていくことになりますね。
QStudioの添付ファイル付きフォームも置き換えられますか?
採用応募や見積もり依頼などで添付ファイル付きフォームを使っている場合、サーバーに保存しない設計のまま移行できるのか、頭を抱える担当者も少なくありません。置き換えられます。
Studioでは、ファイルアップロード項目1つにつき1ファイルまで、サイズは20MBまででした。複数のファイルを受け取るには、項目を複数並べます。ファイルは回答の管理画面からダウンロードする仕組みで、通知メールには添付されたファイルも、取りに行くためのリンクも入りません(ファイルアップロード項目の仕様)。そのため、Studioで保存を無効にするとファイルを受け取れませんでした。
EmDashでは、プラグインにAPIルートを追加できます。Workersでファイルを受け取り、内容のデータをメール送信APIに渡して、メールに添付して送る作りにできます。Cloudflareの添付ファイル付きフォームの実装例には、ファイルを永続的なストレージへ保存する処理がありません。空のファイル、容量の超過、許可していない形式、危険な拡張子を調べて受け付けない検査も入っています。移行するときは、Studioで使っていた点数と20MBの上限をこの検査の設定にそのまま写しておきましょう。
さらに、送ったメールの添付ファイルは送信サービス側に残ることがあります。Resendでは、送信済みメールの添付ファイルを管理画面からダウンロードできます。
Qフォームのスパム対策は何を使いますか?
サーバーに回答を保存しない構成でフォームを公開する場合、無差別に送りつけられるスパムやボットの攻撃にはどのような仕組みで備えればよいのでしょうか。データベースへ保存しない形であっても、悪質なボットによってメールが大量送信されれば、通知先がパンクして日常業務に支障が出ます。EmDashで組むなら、Cloudflare Turnstileが第一候補です。フォームのボット対策に使え、通信をCloudflare経由にしていないサイトにも埋め込めます。
無料プランでは1アカウントあたり最大20個のウィジェットを作成可能です。詳しい仕様や上限はCloudflare Turnstileの料金と仕様で公開されています。問い合わせフォームと資料請求フォームを分けても、上限に届くことはまずありません。
あわせて、ブラウザーで発行されたトークンを受け取り、サーバーからSiteverify APIに送って検証します。検証のためにサーバーで処理しても、回答を保存する必要はありません。
保存しない設計とも合います。Turnstile自体は、フォームに入力された内容を読んだり、保存したり、どこかへ送ったりしません。とはいえ、フォームの送信先やメール、ログに回答が残らないことまでTurnstileが保証するわけではないので、そこは自分の作りで決めます。
ところで、Studioの有料プランでGoogle reCAPTCHA v3を使っていた場合、その設定はEmDashへは引き継がれません。置き換えたら、Turnstileを入れ直してください。
この内容をChatGPTで相談