2009-05-05 9 views
2

フォームスパムを防止するための技術に関するほとんどの質問は既に読んでいますが、ブラウザのセッションの使用を示唆するものはありません。セッションでフォームスパムを防止する

私たちは、指定された電子メールアドレスに電子メールを送信するフォームを持っています.Javascriptを使用していないユーザーにも簡単にアクセスできるように、「captchas」またはJavascriptを使用する考えが嫌いでした。

セッションオブジェクトを使用してフォームのスパムを防止したいと考えています。私たちのwebappは、Strutsを使ってWeblogic Server 10上で開発されています。

解決策は、フォームが読み込まれるときにセッションオブジェクトに変数を設定することです。 submitをクリックすると、変数のセッションがチェックされます。変数はなく、フォームにリダイレクトします。変数が存在する場合、電子メールを送信します。

これは悪い考えであると思われる意見や理由がありがたいので、私たちはこの解決策を他の人たちに評価することができます。

多くのおかげで、 ジョナサン

答えて

0

Sessionオブジェクトは、実装に応じて、リソース使用量の面で比較的重いだけでなく、多少遅くなることがあります。さらに、スパマーは、どのようにブロックしているかを認識していれば、セッションクッキーを送り返さずにフォームにヒットするたびに新しいセッションを開始することができます。

このテクニックは、クライアントがうまく動作することを前提としており、予想される動作がかなり簡単に防止されるため、この問題を解決する他の方法よりも有用性が低い可能性があります。

0

返信いただきありがとうございます。私の質問が間違っているかどうかわかりません。

フォームの送信が正常に完了するために、クライアントはセッションオブジェクトを正しく設定するためにフォームをロードする必要があります。セッションが正しい状態にある場合のみ、電子メールを送信することができます。

スパマーがセッションCookieを返送していない場合、適切なセッションを作成するフォームページに移動していないため、フォームを迷惑メールにすることはできません。

私は、セッションオブジェクトを使用すると追加のリソースが作成されることに同意します。私たちの実装は単純に(JSPを使用して)session.setAttribute("formLoaded", true);と呼び、Strutsのアクションでは単にsession.getAttribute("formLoaded");を使用してチェックします。

+0

そうですね、同じシステムを2ページロードの設定でスパムに使用することができます。フォームをヒットしてセッションを取得し、スパムを送信します。これを繰り返して、この方法で簡単に迷惑メールを逃すことができます。 – cdeszaq

1

フォームをダウンロードして(したがって、クッキーを生成する)、それを送信するプロセスを自動化することをスパマーが防止することは何もありません。スパマーには軽い負担がかかりますが、軽いものです。

例として、cURLなどのコマンドラインツールを使用して、フォームを簡単にダウンロードして送信し、Cookieを保存しておくことができます。これはスクリプトから繰り返し実行できます。

0

これが機能する可能性がある場合、私は疑問に思う:

  1. たびにページ/フォームをレンダリング、テキスト
  2. のランダムビットを作成
  3. が隠しフィールドとしてそのテキストを含めるセッションでそのテキストを置きますフォームで
  4. ユーザーが
  5. アクションがセッションの値に隠されたテキストを比較してフォームを送信する - マッチがありますならば、電子メールを送信

ハッカーはセッションに任意の値を入れることができないため、迷惑メールにならない可能性があります。右?

+0

フォームを送信して、必要に応じてスパムを埋め、すべての隠しフィールドの値を含めることができます。 – cdeszaq

+0

元の問題はこれだと思っていました。迷惑メールプログラムはフォームを使わずにアクションに提出するかもしれません。私のシナリオでは、これは不可能です。フォームが最初に表示され、正しいランダムストリングがアクションへの後続の提出に配置されなければなりません。あなたが言及した "2ページロード"アプローチは、ランダムなStringがフォームページから掻き取られた場合、これを回避します。しかし、おそらく、 "オレンジ"のキャプチャメソッドのように、それは元の質問の質問者の目的のために十分であろう。 – Glen

+0

フォームを使用せずに問題が提出された場合は、元のポスターのソリューション(セッションCookieに依存)が機能します。フォームを最初に読み込むフォームスパムソフトウェア(私はそういうことがあると思います)がどれほど一般的なのかよくわかりませんが、実装するのは簡単ではないので、私は読み込みに依存しないソリューション最初のフォームはあまり役に立ちません。 (「オレンジ」のキャプチャは、スパマーがソフトウェアを特定のサイトに向けなければならないため動作しますが、この場合は必要ありません)。 –

関連する問題