サポート » プラグイン » Contact Form 7で同一IPからの連続送信を一定期間制限したい

  • 解決済 ryo808

    (@ryo808)


    Contact Form 7をリクエストフォームとしてサイトに設置しています。
    リクエストは「数日空けて1つずつ」と注意書きはしているのですが、無視して時々同じIPから何回か連続でリクエストが送信されてしまいます。

    そこで、Cookie等を使用して一定期間同一IPからのメッセージ送信を自動で制限したいのですが、どうすればこの機能をContact Form 7に追加できるでしょうか?
    ご教授頂けると幸いです。

    以上よろしくお願い致します。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • こんにちは

    「同一IP」ということは、イントラ上のシステムなのでしょうか?
    インターネットですと全くの他人でもプロバイダや企業が同じですとIPアドレスが同一になる可能性があります。

    それはそうと、同じIP
    アドレスからの投稿を一定時間遮断するためには、Contact Form 7とは別のところでそういう仕組みを作る方が簡単そうです。
    フォームを設置しているページへのアクセスを制限するなど。

    トピック投稿者 ryo808

    (@ryo808)

    返信ありがとうございます。

    フォームを使用しているのはインターネット上ですが同一IP=同一人物ではないと認識はしています。
    一時的なIP制限であればその間に他の人がフォームを使用することはあまりないかなと考えています。

    Contact Form 7以外の部分も含めて検討して、いろいろと試してみようと思います。

    トピック投稿者 ryo808

    (@ryo808)

    色々と試した結果とりあえずCookieを使用して制限をかけることが出来ました。

    <設定>
    Contact Form 7のsubmission.phpのprivate function mail()の処理の始めに以下のコードを追加。

    if (!isset($_COOKIE[“submit”])){ //Cookieがないの時の処理
    setcookie(“submit”,block,time() + (60*30)); //有効期限30分のCookieを追加

    あとはprivate function mail()の処理の最後に}を追加してCookieが有る場合はprivate function mail()の処理を全て飛ばす。

    <動作>
    Cookieがないときにメッセージ送信ボタンを押すと送信成功時にCookieを追加。
    Cookie有るときにメッセージ送信ボタンを押すと送信エラーメッセージを表示。

    ブラウザのCookieが無効の場合や端末が変わったら制限はかかりませんが、現状よりは改善されると思いますのでこれで様子を見てみます。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「Contact Form 7で同一IPからの連続送信を一定期間制限したい」には新たに返信することはできません。