昨日コメントフレームワークを実装しましたが、すべてうまく機能しています。ただし、小さなスクリプトをセットアップして、コメントが投稿されたときにメールを受信するようにして、必要に応じてコメントを公開できるようにしています。しかし、昨夜、このページに侵入したボットから約 20 通のスパム メールを受け取りました。Google アナリティクスをチェックしたところ、昨日は 28 ページ ビューと 6 ユニーク ビューがありました。そのため、1 つか 2 つのボットのように見え、フォームに何度も入力しています。
サイトでソース コードを表示すると、「ハニー ポット」フィールドが表示されるので、なぜそれがスパムを捉えているのかわかりません。ハニーポット/スパムフィルターが機能するために、コードに何か不足しているのではないかと思っています。
これが私のフォームのすべてのコードです。私は Django にかなり慣れていないので、何も見逃している可能性があります。サイトのトラフィックがそれほど多くないため、サードパーティのスパム フィルターを実装する理由がわかりません。
///形
{% get_comment_form for notice as form %}
<div id="comment_wrap">
<h1>Comments</h1>
{% get_comment_list for notice as comment_list %}
{% get_comment_count for notice as comment_count %}
<h2>{{comment_count}} comment{{ comment_count|pluralize:"s"}}</h2>
<form action="{% comment_form_target %}" method="post">
<table>
<tr>
<td>
{{ form.comment.errors }}
<div class="add">
<textarea id="id_comment" name="comment" value="Add a comment...">Add a comment...</textarea></div>
</td>
</tr>
</table>
<table>
<tr>
{{ form.non_field_errors }}
<td height="30">
{{ form.name.errors }}
<div class="name"><input id="id_name" type="text" maxlength="50" name="name" value="Name"></div>
</td>
<td>
{{ form.company.errors }}
<div class="company">
<input type="text" maxlength="50" name="company" id="id_company" value="Company">
</div>
</td>
<input type="hidden" name="url" value="http://www.website.org" />
<input type="hidden" name="email" value="email@email.com" />
<td>
<input type="hidden" name="next" value="{{notice.get_absolute_url}}#commentmade"/>
<button class="submit" value="Submit" >Submit</button>
</td>
</tr>
</table>
<div id="commentmade" style="display: none;"><p>Thanks for posting. Your comment is awaiting approval.</p></div>
<div class="fieldWrapper honey_pot">
{{ form.honeypot.errors }}
<label for="id_honeypot">If you enter anything in this field your comment will be treated as spam:</label>
{{ form.honeypot }}
{{ form.content_type.errors }}
{{ form.content_type }}
{{ form.object_pk.errors }}
{{ form.object_pk }}
{{ form.timestamp.errors }}
{{ form.timestamp }}
{{ form.security_hash.errors }}
{{ form.security_hash }}
</div>
</form>
</div>
{% for comment in comment_list reversed %}
<div id="comment_post">
<span class="name">{{comment.user_name}}</span>
<span class="company"> | {{comment.company}} | </span>
<span class="time">{{comment.submit_date|timesince}}</span>
<p>{{comment.comment}}</p>
</div>
{% endfor %}