13

訪問者に負担をかけることなく (例: CAPTCHA)、集中型のスパム報告システム (例: Akismet) を使用せずに、自分のサイトでスパムをうまく防ぐことができた人はいますか?

私はこれを見つけました & 有望に見えますが、詳細な展開手順は含まれていません.

CAPTCHA のようなテクノロジーでユーザーに負担をかけることなく、Web フォームを表示したいだけでなく、スパム防止を積極的に自動化したいと考えています。

そのようなテクノロジーを実装する方法についての詳細な説明/チュートリアルは存在しないようです。

免責事項

また、スパムを防止するのに適切な特効薬がないことも認識しています。しかし、スパムの 95% 以上をブロックする非侵襲的 (ユーザーには見えない) 防止システムを導入するだけであれば、導入する価値があります。

4

10 に答える 10

6

私は基本的に自分のサイトでスパムを防ぐために 1 つのトリックを使用しており、うまく機能しています (少なくともスパムボット プログラマーがこの投稿を読むまでは ;))。

コードは次のようになります。

フォームを含むサイトを構築するスクリプトでは、次のように実装しました。

$_SESSION['lastSiteId'] = 'something Unique';
$_SESSION['lastSiteRequest'] = time();

コメントをデータベースに書き込むロジックを含むスクリプトには、次のものが含まれます。

if($_SESSION['lastSiteId'] == 'something Unique' 
   && $_SESSION['lastSiteRequest'] + 5 < time()){

    insertComment();
}else{
    echo "Please read the article before posting a comment";
}

これは、アイデアを提供するための疑似コードであることを忘れないでください。最終的には一人で実装する必要があります... ;)

フォームを再読み込みしてから POST リクエストを送信するまでに 5 秒以上経過したかどうかを確認するだけです。

スパムボットのエンジニアは寝ていないことに注意してください。プログラマーがそうしたい場合、スパムボットは不要な入力を投稿する前に数秒待つことができます。質問は次のとおりです。スパマーが要求の間に 5 秒待たなければならない場合、どれくらいのスパム メッセージが送信される可能性がありますか? ほら、これがスパム防止の最終的な解決策かもしれません。

時間テストと JavaScript テスト (可能であれば必要に応じて) を組み合わせて、事前入力/未入力の非表示フィールドのトリックを組み合わせることで、数年後にはスパムから救われるはずです。

于 2011-10-04T13:41:24.177 に答える
3

ハニー ポット キャプチャ ( Phil Haack による記事)。あなたが探していることを行うために採用される通常の方法です。それは絶対確実ではありませんが、実際には何ですか?

これは、あなたがすでに調査したもののほとんどのようです。ソリューションの制限が何であるかを理解するために十分な注意を払ってください。それでもニーズを満たすことがわかった場合は、この手法が他の人によって有効に使用されていることを確認してください.

于 2009-08-18T21:42:15.850 に答える
1

99%のスパムを取り除きます。これを参照してください-http://wordpress-plugins.feifei.us/hashcash/

明らかに、それは自動化されたスパムを防ぐだけであり、Akismetまたは他のものと一緒にそれを使用して100%の保護を取得します。

更新:HashCashはどのように機能しますか? スパムは無料で(ボットネットを使用すると無料で)、それが機能する理由です。したがって、このプロセスを(CPU)高価にすることができれば、大量のスパム/メッセージングは​​機能しないという考えです。詳細はこちら-http://en.wikipedia.org/wiki/Hashcash

JavaScriptを使用して、より単純なバージョンを実装できます。フォームを送信する前に、スクリプトは計算値を生成します。このプロセスはCPUにコストがかかる必要があります。ほとんどのボットネットはそうすることを避け、したがって自動スパムはありません。

于 2009-08-19T03:48:53.067 に答える
1

究極の解決策があれば、CAPTCHAはまったく必要ありません。ただし、サイトのサイズが、誰かが手動でサイトをハッキングする方法を探すのに十分な大きさでない場合は、隠すことによるセキュリティが最善の方法である可能性があります。上記で指定したリンクなど、または「City_2」などの入力を追加して非表示にするのと同じくらい簡単です。入力ボックスに入力した場合、すべてのフィールドに自動的に入力されるスパマーがいる可能性があります。データをダンプして移動するだけです...ちょうど私の2セントです。

于 2009-08-18T21:46:08.883 に答える
1

私は最近、非常に単純なテクニックを 1 つ試しました。ラジオ ボタンのコレクションが表示されると、スパム ボットは常に最初のオプションを選択するか、事前にチェックされたものを何でも受け入れるように見えることに気付きました。私が運営している 1 つの Web サイトには、ユーザーが半ダースほどの質問を記入するフォームがあります。質問の 1 つは、選択肢のラジオ ボタンを備えた「エントリの種類」です。そこで、「私はスパマーです」という新しい最初の選択肢を追加し、その選択肢が存在する理由を説明する括弧付きのコメントを付けて、それをデフォルトにしました。このオプションをオンにしてフォームを送信すると、通常の確認メッセージではなくエラー メッセージが返されます。それ以来、私が受け取るスパムの量はほとんどゼロになりました. 何だか分からない」

ほとんどの場合、これは機能するかどうかを確認するための実験として行いました。率直に言って、スパム ボットをだまして自白させて自首させるのが楽しかったからです。ほとんどの場合、私はそれを議論のために持ち出します: より良いアイデアに貢献するかもしれません.

スパマーが、私の小さなサイトに特別な注意を払う価値があると判断した場合、もう少し賢いスパム ボットで簡単に打ち負かすことができます。しかし、それは多くのスパム対策スキームについて言えることです。

于 2009-08-19T14:20:39.893 に答える
0

フォーム (コメントまたは連絡先フォーム) に非表示の入力を追加する必要があります

<input type="text" id="hidden_input" name="hidden_input" style="display:none;"/>

そして、この入力が満たされているかどうかを確認するための小さなphpを書くので、「if than else」を選択して制御できます

if($_POST['hidden_input'] != ""){
    echo('<p>You are a spambot!!!</p>');    
}

これは、人々がこのフォームを見ることができないためです。このようにして、実際にボットはすべての入力を埋めるため、すべての入力が満たされている場合、PHP はこのエラー メッセージを送信し、サーバーのコメントや電子メールに送信しません。

于 2012-12-08T10:04:02.540 に答える
0

これは非常に優れた実用的なソリューションであり、プロジェクトで使用しています。

それは試みに値します...

于 2009-08-18T21:55:31.453 に答える
0

スパム対策システムに関する一般的なコメント: 何をしても 100% 安全ではありません。あなたのサイトが十分に大きく、またはスパマーがサイトを破壊することに特別な注意を払うことを決定するのに十分な価値がある場合、彼らはおそらく方法を見つけるでしょう. しかし、彼らはホームセキュリティについて日常的に言っているようです.確かに、熟練したプロの泥棒は、平均的な住宅所有者が購入できると思われる警報システムを打ち負かすことができます. しかし、あなたは不器用なアマチュアを締め出し、プロにとって十分な迷惑をかけると、彼がそれを壊すまでにあなたが家に帰っているか、隣人が彼を見つけて電話をかける危険性が高まります.警察。私が軍隊で働いていたとき、私たちは定期的に、セキュリティと正当なユーザーが仕事をするのを防ぐことのバランスについて話し合っていました。軍隊における目標は、仮説的なものではありません」核弾頭を保護していた人々が、私たちがレーダーシステムを設置するよりも高いレベルのセキュリティを主張したことを願っています. 中東の基地など、攻撃が疑われる地域の人々は、中米の基地よりも高いセキュリティを備えていました。等。核弾頭を保護していた人々が、私たちがレーダーシステムを設置するよりも高いレベルのセキュリティを主張したことを願っています. 中東の基地など、攻撃が疑われる地域の人々は、中米の基地よりも高いセキュリティを備えていました。等。

要点: あなたのサイトがターゲットになる可能性はどれくらいですか? 私が運営している大会サイトでスパムの抄録の提出を防ぐためにわざわざ使用するよりも、私の銀行が私のお金を保護するためにより厳しいセキュリティを使用することを願っています. 何百万人もの訪問者がいてよく知られているサイトは、おそらく、数千人または数百人の訪問者がいる無名のサイトよりも優れたセキュリティを必要とします。「十分」とはどのくらいですか?

于 2009-08-19T14:31:38.240 に答える
0

私はAkismetを使用しています。これは電子メール スパム フィルターに非常によく似ていますが、サービスを使用しているすべてのサイトのスパムを組み合わせてベイジアン プロファイルを継続的に構築するため、非常に強力です (1 日あたり約 1800 万のコメント)。彼らの Web サービスは非常にシンプルで非常に高速です。コメントをネットワーク経由で送信するだけで、「スパム」または「非スパム」の応答が返されます。ほぼすべてのプラットフォーム用の既存の Akismet ライブラリがあります。

私のサイトでは、コメントが承認された場合はデータベースに登録し、承認されなかった場合は黙って無視します。

于 2009-08-18T22:02:53.217 に答える