Laravel:お問合せからの迷惑投稿を撃退した話

Laravel:お問合せからの迷惑投稿を撃退した話

迷惑行為があったのは【お問合せ】の部分。
まぁね、ご想像の通りです。

reCAPTCHAも仕掛けてみたんだけど状況は全く変わらず。
で、だったら営業妨害になる問合せについては『ドメインチェックして書込み防止してやろう』となりました。

やった事

  1. blackdomainsテーブル新設
  2. 問合せレコード削除時にblackdomainsにレコード追加する
  3. 削除時にマーカーを用意し、ドメイン/アドレスのどちらをブラックリストに登録するか指示
  4. 問合せからの書き込み時、blackdomainsをチェックし存在したら書き込んだそぶりを見せたページへ遷移
  5. blackdomainsに存在しなかったら従来通りDB格納/代表メールへリマインド送信

こんな感じで、迷惑メッセージの削除とブラックリスト入りを連動させてみました。

書込みしない処理(項目4-5)の簡易コード

  #最初にマーカーを用意
  $mark = 0;

  #ブラックドメインの情報を全件取得
  $blacks = Blackdomain::all();
  #1件づつ取り出してチェック
  foreach($blacks as $black){
    if(strpos($request->email,$black->text) !== false){
      #BlackDomainが含まれている場合、マーカー変更
      $mark = 1;
     }
   }
  
  if($mark == 0){
    #マーカーが初期値のままの場合
      #DB蓄積
      $message = new Message;
      $message ->subject = $request->subject;
      $message ->content = $request->content;
      $message ->name = $request->name;
      $message ->email = $request->email;
      $message ->save();
      #内部メール送信
      SendMailer::ContactToInfo($to2,$fromname2,$name,$subject2,$title,$content,$returnadd,$contactURL);
      #記入者にメール送信
      GuestContactMailJob::dispatch($to,$fromname,$name,$subject,$title,$content);
      #画面遷移&succsessで通常メッセージ
      return redirect('Massages')->with('request')->with('success','お問合せありがとう御座います。内容について確認の上、ご返信させていただきます。');
  }else{
    #マーカーが初期値から変更されている場合
      #画面遷移&successでありがとうメッセージ
      return redirect('Massages')->with('request')->with('success','お問合せありがとう御座いました。');
  }

迷惑メッセージの登録者は同じ様子

閲覧者数が増えるとまた変わってくるのだと思いますが、現段階では同じドメインで書き込んでくる方が多くいました。なので、BOTだと思いreCAPTCHAを設置したのですが、まだ書き込んでくるんですよね。

今回、ドメイン自体を禁止にさせて頂いたので、システム内部の閲覧側は荒れる事はないだろうと。
暫くこれで様子見です。

まとめ

いたちごっこですから、最良になる事はなかなか難しいともいます。
でも少しでもそこに近づけたらいいなぁと思っています。
で、コード書くのはやっぱり慣れたLaravelが一番早いなぁと痛感した次第です。

ホントさ、迷惑行為してる人、辞めてくださいね。

\ 最新情報をチェック /

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください