2012-05-23 18 views
6

私が取り組んでいるウェブサイトの登録フォームにCaptcha(またはRecaptcha)の代わりを使用しています。スパムボットをサーバーに直接POSTするか、HTMLフォームに記入しますか?

CaptchaがUXに悪影響を与えると私は信じています。私は隠しフィールドを使用してに探していたが、どうやら彼らはすべてでは有効ではないです(参考:http://radio.javaranch.com/davo/2008/10/15/1224063498569.html

その記事の状態にコメント:私の仕事の一部としてCAPTCHAクラッカーを書き込み誰かとして

(いいえ、 迷惑メール用ではありません)、私は隠されたフィールドが決してトリップしないことを保証することができます 私をアップします。言及された別のポスターとして、私は のワイヤートラフィックをチェックし、 フォームのHTMLに何が起こっているかにはほとんど注意を払わない。

これは、私には、フォームをリクエストして記入するのではなく、サーバーに直接POSTリクエストを送信すると考えられました。

この場合、SESSIONに保存されているハッシュで事前設定された非表示の読み取り専用フィールドを作成するとどうなりますか?ユーザーがフォームを送信すると、値を比較できます。これはスパムロボットを遠ざける方法として機能するのでしょうか、何かを監督していますか?

フォームが決して要求されないならば、私はもちろん、セッションで保存されたハッシュも見つからないので、要求を無視することができます。

+3

ここでは少なくとも3つの前提があります。 1.すべてのCAPTCHAクラッカーが同じテクニックを使用していること。 2.専門家としてCAPTCHAを作成した人、専門家を犯した人がいない(把握できなかった)という考えを持っていること。 3.あなたのサイトは今すぐこの時間に開発時間を費やすために、すぐにスパマーのターゲットになると考えています。 彼らはそうではありませんが、そうではありません。 –

+1

@Jordan:私は最初の2つの仮定をしていることに同意します。残念ながら、第3のものはそれらの1つではありません。私はまだサイトで作業していて、先週の登録機能を完了し、すでにデータベースに3つの明らかなボットを持っています。 – xbonez

+0

@ xbonezコメントのあなたの主張は、あなたが主導した「信念」をほとんど反証しています。 –

答えて

6

チャレンジをサーバー側セッション変数に関連付ける別のフィールドを追加するのは良い方法です。フォームを読み込んで解析し、記入して別のリクエスト(必要なクッキーに沿って送る)をしなければならない、スパムボットの側でかなりの労力が必要になります。

JavaScriptを追加して特定のチャレンジを変更し、特定の方法で変更することも考えられます。攻撃者は、自動化された方法でコードを複製する前に、コードが何をするかを調べる必要があります。変換は単純なrot13以上の複雑な操作xorです。 md5sha1のようなものは確立されたアルゴリズムなので、それらは貧しい選択です。それは習慣でなければならない。

もちろん、攻撃者があなたのサイトのターゲット設定に縛られている場合、迷惑メールの流入を防ぐ方法はあまりありません。それは醜い真実です。たとえば、Seleniumを実行して、慎重に組み込まれたすべてのJavaScript保護を回避することができます。

+1

私はJSをミックスに持ち込む考えが好きです。 「Javascriptを使用してチャレンジを変更する」と言いましたが、何を思い浮かべましたか?おそらく、ハッシュを逆にするような何か? – xbonez

+0

私は同意します。一般に、captchaなどの全体のポイントは、スパマーがより高価になるようにスパマーの計算作業を増やすことです。ブラウザでいくつかの計算が完了すると、このターゲットに向かって行きます。 – jhonkola

+0

@xbonez回答に「挑戦を変更する」という例を追加しました –

0

私はそれがボットに依存していると思います。誰かがあなたのサイトをターゲットとした場合、これは非常に簡単に回避することができます。フォームと

  1. リクエストページやフォームに必要事項を記入し、提出するセッション値
  2. に充填します。

私はそれがほとんど保護されていないと言います。

悲しいことに、私はあまりにもボットの現在の状態とその仕組みに慣れていないので、これはこの実装を回避するのがどれほど簡単かという私のインプットです。

+0

私のウェブサイトをターゲットとするボットが保護を迂回する可能性があります。高度なボットはCSSを解析し、隠れたフィールドを認識することもできます。私は「完璧な方法」がおそらく存在しないので、「最も効果的な」方法で解決するだろう。 – xbonez

0

異なるスパムロボットは異なる方法を使用します。

しかし、ほとんどの柔軟なスパムボット:フォームと 1.要求ページ 2.それはいくつかの満たされた値であるフィールドと 3.送信POST要求が含まれているどのようなフィールド読み

よろしい、そのすべてを望めませんボットは、あなたの "フォームセッショントークン"入力を見つけ出して残すことができます。あなたは、すべてのボットがjavascriptを使用できることを確かめることはできません(保護するもう1つの方法 - 必須フィールドを追加するにはjを使用します)。しかし、ボットは大きく異なります。

2

残念ながら、あなたのサイトをターゲットにしているスパマーが残っている可能性があります。手動でログインと登録を実装した場合、あなたのフォームに特別に合わせることなく、サインアップできるロジックを持つスパムロボットは存在しそうにありません。

他の解決策は役に立ちますが、中には適度に決定されたスパマーも防止できません。たくさんのスパムロボットがブラウザプラグインとして動作しますので、スパムロボットがJavaScriptを評価できない、または最初にフォームを呼び出さないことを信頼することは、あなたを非常に長く支援することはまずありません。少なくとも、登録のためのCAPTCHA(おそらく、各投稿、またはあなたのサイトが何をしていても、アカウントが手動で承認されるまで)はおそらく必須となります。

あなたはユーザーエクスペリエンスに影響を与えたくないことは知っていますが、ですが、スパムのメッセージとアカウントはCAPTCHAよりもUXにとって害です。弾丸を噛んで、スパマーを遅くするためにできることはすべて行ってください。そうしないと、ユーザーは他の場所に見えます。

許可されたCAPTCHAは完全な解決策ではありません - 人間よりも正確に(場合によっては)解決できるソフトウェアがあります。豊富な朝食シリアルのようなものは、この完全な朝食の一部に過ぎません。そして、正しい思いを抱く者は誰も昼食を忘れることはありません。 ;)

新しいユーザーをモデレートすると非常に役立つことがわかります。

+0

ええ、私はもっと積極的なものに行かなければならないようです。私は電子メールの検証に行くと思っています。スパムボットはアカウントを確認することはできませんが、それはありますか? – xbonez

+0

電子メールの確認?もちろん、彼らは全体的にそれが可能です - それは小さな問題です。すべてのスパムロボットができるわけではありませんが、HUMANユーザーがアカウントを設定した後に多くのスパムが発生することに注意してください。 –

+1

合理的に考える:ボットが通過できないという検証方法があれば、誰でもそれを使用します。もうスパムはありません。したがって、絶対に何もできません。 –

関連する問題