第4-2章(11 / 23)第4部:攻撃対象の削減と運用の堅牢性

静的な画面とGASの受付処理を分ける

本章の論点(Question)
受付の成功と、メール通知の成功をどう区別しますか。
本章の命題(Assertion)
受付データの保存を成功条件にし、メール通知を別処理として扱うと、障害時の状態を説明しやすくなります。

受付データの保存を成功条件にし、メール通知を別処理として扱うと、障害時の状態を説明しやすくなります。

静的な画面とGASの受付処理を分けるの要点
受付データの保存を成功条件にし、メール通知を別処理として扱うと、障害時の状態を説明しやすくなります。

処理の担当を分ける

当サイトのHTMLは問い合わせ画面を表示し、入力をGASへ送ります。受付内容はGoogleスプレッドシートへ保存し、メール通知はGoogleのサービスで行います。公開Webサーバーで受付本文を保存する構成にはしていません。

保存と通知は同じ成功ではない

受付番号は保存結果を確認するために使います。メールが届かないだけで、保存まで失敗したとは限りません。一方、通信が切れるなど、ブラウザから保存結果を確認できない場合もあります。その場合は成功と断定せず、同じ受付キーで再試行する設計にします。

重複判定、排他制御、入力検証、送信回数の制限は、誤操作や濫用のリスクを減らします。あらゆる障害や不正利用を防ぎ切る保証ではありません。

外部サービスの上限も運用に含める

GASやメールには割り当て、実行時間、障害の可能性があります。通知の再試行が止まる場合に備え、未通知データを確認する手順も必要です。

保存期間の設定、期限を過ぎたデータの点検、削除の承認と実行は分けます。削除用の関数が存在するだけで、定期削除が実際に動いているとは扱いません。

参考資料

考え方や情報基盤の設計を組織へ導入する講演・研修も承っています。ホワイトペーパー目次・講演・研修・お問い合わせ