ユーザーが個人情報を登録または提供することなく、自分のサイトに投稿できるようにすることを検討しています。各投稿が db キューに送信され、これらの投稿を手動で選別すると、どのような問題が発生する可能性がありますか? これらの問題をどのように処理できますか?
5 に答える
すべての投稿を選別するのは面倒で面倒です。また、迷惑な管理者スパムが発生しやすくなります。私の提案は、可能な限りスクリーニングを自動化することです。さらに、識別情報を提供してもスパムを防止することはできません (ボットが生成するだけです)。
多くのプロジェクトは認識システムを実装しています: 最初にユーザーは承認された 1-2 の投稿を投稿する必要があり、次に IP と (おそらく) 信頼できる投稿者として識別された Cookie によって、投稿が自動的に表示されます (後でスパム)。
また、投稿のコンテンツに関するいくつかのヒューリスティック (投稿内のリンクの量など) を使用して、潜在的なスパム投稿を自動的に破棄することもできます。
最も明白な問題は、サイトが十分に人気がある場合、スクリーニングへの提出の数に圧倒されることです.
特定の IP アドレスからのすべての投稿、または特定の正規表現に一致するすべての投稿を自動的に強制終了できるように、いくつかの管理ツールを必ず追加します。これにより、明らかなスパムをより迅速に取り除くことができるはずですが、繰り返しになりますが、そのためにはハンドルを握る必要があります。
簡単な質問への回答を求めると、ブラウザーに画像として送信されることがわかりました (「2 + 3 - 4 =」のように、「captcha」の一種ですが、それほど迷惑ではありません)。結構です。
画像と回答フィールド、および「チャレンジ」(ランダムに生成された文字列) を含む非表示フィールドを含むフォームを送信します。ユーザーがフォームを送信すると、チャレンジと回答がハッシュされ、結果がサーバーに返されます。サーバーは、レビューのために回答をデータベースに追加する前に、有効な回答をチェックできます。
前もって大変な作業のように思えますが、レビュー時間を何時間も節約できます。jQuery の使用:
<script type="text/javascript"> // 答えをマスクするハッシュ関数 関数 answerMask() { var a = $('#a').val(); var c = $('#c').val(); var h = hex_md5(hex_md5(a) + c); $('#a').val(h); } </script> <form onsubmit="answerMask()" action="/cgi-bin/comment.py" method="POST"> <テーブル> <tr><td>コメント</td><td><input type="text" name="comment" /></td></tr> <tr><td># ここに画像を挿入 #</td><td><input id="p" type="text" name="a" size="30" /></td></tr> <tr><td><input id="c" type="hidden" value="ddd8c315d759a74c75421055a16f6c52" name="c" /></td><td><input type="submit" value="Go "> </td></tr> </p> </フォーム>
更新を編集...
この手法は Web サイトで見ましたが、どのサイトかわかりません。このアイデアは私のものではありませんが、役に立つかもしれません。
チャレンジ フィールドとコメント フィールドを含むフォームを提供します。チャレンジの前に「次から 3 番目の単語を選択してください: glark snerm hork morf」を付けて、単語と選択する単語をサーバー上で簡単に生成し、フォームの内容が戻ってきたときに簡単に検証できるようにします。
要点は、ユーザーに何かをさせ、いくつかの脳細胞を適用させ、スクリプト キディにとって価値がある以上の作業をさせることです。
退屈なことが最大の懸念事項のようです。投稿を手動で選別することは、スパムに対して効果的ですが (これは、除外したいものだと思います)、非常に退屈です。
草むしり中にコーヒーと素敵な音楽を聴くのが一番いいでしょうか?
- 正当に見えるがそうではない投稿
- 膨大なボリューム
これらは、私のブログで見られる問題です。