0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Flaskでスパム対策のハニーポットを設置

Posted at

お問い合わせフォームなど、フォームを設置していると必ずやってくるスパムボットを、簡易的に退けるハニーポットを Python Flask に設置してみました。
特別なことは無く、テキストフィールドを CSS で非表示にしておき、そのフィールドに書き込みがあった場合は任意のページにリダイレクトさせるといった内容です。

forms.py

class LoginForm(FlaskForm):
    honeypot = StringField('')  # ハニーポットフィールド

views.py

if request.method == 'POST' and form.validate():
	if form.honeypot.data != "":
		return redirect(url_for('app.index'))

HTML

<form method="POST">
    {{ form.csrf_token }}
    <div style="display: none;">{{ form.honeypot() }}</div>
</form>

上記はトップページにリダイレクトさせるパターンでしたが、何らかの適当なページを用意しておき、アナリティクスなどの解析タグを埋め込んでおけば、どれくらいスパムボットが来てるか計測もできると思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?