個人事業主として便利なWebサービスを作りました。
「お問い合わせフォームの内容をGoogleスプレッドシートに自動記録する仕組み」です。
メインの機能はお問い合わせフォームの内容をスプレッドシートに保存する。
一見するとシンプルな仕組みですが、奥の深いサービスになっています。
きっかけ
一番の理由は自分が欲しかったからです。ワードプレスなどのCMSを使わずホームページやウェブサービスを運営していると、必ず必要になるのが お問い合わせフォームです。
既存のサービスをつかうとメールは届くけど👇の問題が。。。
・メールで届くだけで管理がしにくい
・過去の履歴を探しにくい
・スパムの件数が尋常じゃない
(1分数十件とか。とくにWORDPRESSは恰好の標的)
というのもあって、スプシで管理できるとそのままタスク管理もできるし複数人で見ることもできるし便利だと思うのは全人類の共通認識ではないでしょうか。
特に小規模サイトや個人事業主の場合、この「メールだけで問い合わせを管理している」というケースがとても多いように感じました。
仕組みのイメージ
仕組みとしてはとてもシンプルです。
ホームページのフォーム
↓
お問い合わせAPI
↓
Googleスプレッドシート
フォームから送信された内容をAPIで受け取り、そのままスプレッドシートに1行ずつ記録されていきます。👇
これだけで問い合わせ履歴の管理やスタッフとの連携が楽になります。実際楽になったんですよ、ほんと。僕メール見ないし。
上の画像をみるとわかるのですが、送信元のサイトや直前に見ていたサイト、グローバルIPアドレスや送信者の環境も記録するようになっています。
今後、IPアドレスによるブロックとか分析に活用できるかと思います。ただ、情報の取り扱いについての規約はフォームに掲載する必要があります。
ここまでが「基本機能」です。
すでにセキュリティーが盤石のフォームを持っている人がこのサービスを呼ぶだけで、スプレッドシートへの転送はできます。
これは単なる転送サービスではない!
最初は「フォームの内容を送ってシートに書き込むだけ」でいいと思っていましたが、初めてフォームを作る人に対して余計なサービスに登録することなく「このサービスだけで極力完結」できるものを目指しました。
つまり、既存のサービスにたよらないといけない部分、「サーバ」によるチェック機能です。
BOT、スパム対策、迷惑メール対策も盛り込むことにしました。最近のBOTってえげつないらしいじゃないですか・・・
話を聞くと、既存サービスでもなかなかブロックできないみたいなんですね、対策してもすぐ突破されたり。
今回実装した内容の「一部」は以下の通り。
■基本
SQLインジェクション対策(そもそもRDB使用していない特殊な構成)
XSS対策
ドメイン制限
同一IPアドレスレートリミット
これだけで、人によっては9割以上のBOTは減るのではないのかなと考えております。
■さらに
こんな対策も実装しています。ここは利用者(フロントエンドの実装)によって変わる部分ですし、オプションとなることもありますが。
ハニーポット
タイムトラップ
入力値検証
https://を含むメッセージの制限
文字数制限
ここにあげた対策はまだ全部ではありません。ほかにもいろいろ実装しています。
お問い合わせフォームは、インターネットから誰でも送信できる入口なので、
悪意のある彼奴らのおもちゃになってたり攻撃の踏み台にさせられたり営業メールが頻繁にきたり、かなりセキュリティ面をしっかり考える必要がありますよね。
自作する人も多いですが、やはりフロントでトラップを仕掛けたり、GoogleFormで代替したり、GASで自作しても、トラップをかいくぐってきたりURLの公開したら攻撃を受けたりデザインの自由度がなかったりとしていまいちピンとこないんですよね。有名どころのプラグインはBOTはうまく弾いてくれないし。reCapthcaは破られたし。
あと、お問い合わせフォームのトラップって、フロントエンドとバックエンドのトータルで考えることでより一層の対策になります。
そのため、お問い合わせフォームの作成・改修もサービスに含めました。
本業があるのとオーダーメイドなので多少時間はかかるかもしれませんが、誠心誠意対応します。
※送信完了メール替わりに送信ステータスを表示することもできます。
不安症な私が愛情をこめてこれでもかというぐらい防御策を組み込みながら作りました。今後も増やします。何重防御だよ。どんだけ心配なんだよ。
まとめ
今回作ったのはお問い合わせフォームの内容をスプレッドシートに記録する仕組みというシンプル+αというものです。でも25年以上のIT企業での勤務経験、フルスタックエンジニアの意地を持ってしか作れないようなものを作りたいと思い製作しました。
今後もこうした 小さな便利ツールを少しずつ作っていけたらと思っています。
セキュアなフォームが欲しい方、今のフォームに不安がある方(構造次第でお手持ちのフォームに組み込みます)、もし興味のある方は、一度ご連絡ください。
既存フォームのサーバー転送処理の前に置けば結構な防御になりますし、すでにそのような処理を実装されているならば、その処理の後においてスプシへの転送機能として使うこともできます
なお、サーバは国内でとても名の通った企業のものを使用しています。ご安心ください。
サポート情報はこちらから!