アプリ版:「スタンプのみでお礼する」機能のリリースについて

スパムメールについて詳しい方アドバイス頂けないでしょうか?

現在サイトの申し込みフォームから大量のスパムメールが届くようになってしまったのですが、原因が分からずお助け願います。

まず、フォーム自体には大量に必須項目があり、また名前などの項目には、pattern="[^\x20-\x7E]*"の指定があり、半角英数のみなどは弾かれる設定です。
もちろん、それ以外にもjQuery:「validationEngine」の入力チェックでclass="validate[required]"必須の判定などを行っているのですが、これらの項目に半角英字のみがセットされていたり、必須の為空禁止なのに、空のままの状態で送信されてきます。

これらはどういった事が原因になっているのでしょうか?
javascriptなどの判定ではだめという事なのでしょうか?

フォームの流れとしては、index.htmlで申し込み、チェック通れば thanks.php に遷移してこちらでメールの送信などを行っております。
もちろん直接thanks.phpへはアクセスできないです。

こういった状況で、必須や空でメール送信が行われてしまうのは、どのような原因が考えられますでしょうか?

宜しくお願いいたします。

A 回答 (3件)

JavaScriptのチェックは何も意味を成さないです。


正規のユーザーに謝りを教えるだけで、スクリプトは直接postします。

基本的にはサーバー側(php)で同じバリデーションチェックを入れる必要があります。

国内向けサイトならサーバーで海外IPアドレスを弾くだけでほぼなくなるのではと思います。
    • good
    • 0
この回答へのお礼

有難うございます!!

>>JavaScriptのチェックは何も意味を成さないです。
>>正規のユーザーに謝りを教えるだけで、スクリプトは直接postします。
やはりそうですか、なんとなくそんな可能性もあるかもとは考えておりました。

>>基本的にはサーバー側(php)で同じバリデーションチェックを入れる必要があります。

なるほどです、そうしますとindex.htmlで簡易的なjsでのチェックを行い、新たに追加予定のcheck.phpでpostで受け取った値をPHPでチェックしようかと思いますが、この流れでよいでしょうか?

>>国内向けサイトならサーバーで海外IPアドレスを弾くだけでほぼなくなるのではと思います。

おっしゃる通り国外からのスパムとなっているので、IP判定も検討してみたいと思います。
貴重な情報を有難うございます!mm

お礼日時:2023/08/10 21:17

>>それ以外は、PHPでのメール送信処理などが記載されています。



と言う事は、thanks.phpはphp言語を使って記述され、cgiでサーバ内で動作するプログラムなんですね。
index.htmlからthanks.phpがpostされるのですね。

で有れば、以下の2個を追加したら如何ですか。
先ずは1、それで駄目なら2も追加、と言う順序です。

1.確認画面を設置する

相手側が送信する前に確認画面を設置して送信までにワンステップ入れる。一段階いれることでことで自動送信ができなくなります。

2.reCAPTCHAを設置する

Googleが提供している「reCAPTCHA」を設置する。
メールフォームの最後に「私はロボットではありません」というメッセージにチェックボックスをつける?
見た事有ると思います。
これでワンステップ入れます。
    • good
    • 0
この回答へのお礼

有難うございます。
大変参考になります、もう1クッションcheck.phpをかませてみます。
合わせてreCAPTCHAについても導入をしたいと思います。
まずはこの内容で修正を進めてみたいと思います!

お礼日時:2023/08/10 18:42

thanks.phpはサーバ内のみで動作するプログラムですか?


それともブラウザで表示可能なファイルですか?

遷移と言ってるので多分後者でしょう。
ネットサーフプログラムによってthanks.phpの中からメアドが盗られてると思います。
    • good
    • 0
この回答へのお礼

有難うございます。

>>thanks.phpはサーバ内のみで動作するプログラムですか?
>>それともブラウザで表示可能なファイルですか?

変な回答でしたら申し訳ありません。
thanks.phpは「申し込み有難うございました」のメッセージが完了画面として表示されます。

それ以外は、PHPでのメール送信処理などが記載されています。
メールアドレスがとられるというのは管理者用の確認メールアドレスでしょうか?
PHPで定数定義しているので取られることは無いように思うのですが。


それよりも、大量に色々なアドレスから申し込みが届いて困っています。
また、質問に記載した通り、必須項目や空チェックなど、複数のバリデーションかけているのですが、無視して送信されます。
こういった場合は、何が原因で送信されるのでしょうか?
もうフォームは関係なしに、直接POSTたたいているのでしょうか?

そうなった場合への対処法もお伺いできればと思います。

お礼日時:2023/08/10 18:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!