Laravel:お問合せからの迷惑投稿を撃退した話
Laravel:お問合せからの迷惑投稿を撃退した話
迷惑行為があったのは【お問合せ】の部分。
まぁね、ご想像の通りです。
reCAPTCHAも仕掛けてみたんだけど状況は全く変わらず。
で、だったら営業妨害になる問合せについては『ドメインチェックして書込み防止してやろう』となりました。
やった事
- blackdomainsテーブル新設
- 問合せレコード削除時にblackdomainsにレコード追加する
- 削除時にマーカーを用意し、ドメイン/アドレスのどちらをブラックリストに登録するか指示
- 問合せからの書き込み時、blackdomainsをチェックし存在したら書き込んだそぶりを見せたページへ遷移
- 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が一番早いなぁと痛感した次第です。
ホントさ、迷惑行為してる人、辞めてくださいね。


