为了一定程度的降低被暴力破解的概率,增加一些服务的安全性,我们往往会给我们的服务增加验证码。

今天给大家分享如何快速给django admin后台添加验证码的方式方法。

作为一名偷懒的Python开发者,想到怎么简单怎么来。

所以原则就是「不改动代码数据结构,通过第三方包的方式配置生成验证码」

本着这个原则就有了下面的两种方式:

使用google recaptcha2

第一种方式就是使用 google recaptcha2

  1. 去 reCAPTCHA: Easy on Humans, Hard on Bots页面添加域名

  2. 到达如下的注册页面

  3.  

  4. 你需要知道的添加Django后台验证码的方法_Django

  5. 添加完后,获取对应的public_key和private_key

  6. 你需要知道的添加Django后台验证码的方法_Django_02

  7. 安装配置如下

‍pip install django-captcha-admin
INSTALLED_APPS = (
    ...    
    'captcha_admin',
    'captcha',
)
RECAPTCHA_PUBLIC_KEY = 'your-public-key'
RECAPTCHA_PRIVATE_KEY = 'your-private-key'
\# If I'm not a Robot is required add:
NOCAPTCHA = True
from captcha_admin import admin
urlpatterns = patterns(
    ...
    url(r'^admin/', include(admin.site.urls)),  # and this...
    ...
)‍

 

到此配置就完成了,然后就有了下面的效果

你需要知道的添加Django后台验证码的方法_Django_03

使用google captcha的安全性和可用性都不错,但是由于国内原因,需要你的服务器和使用你后台客户需要梯子翻*墙,所以下面有第二种方案。

使用django-simple-captcha

这种方式主要结合了 django-multi-captcha-admin 包进行配置

配置如下

pip install django-multi-captcha-admin django-simple-captcha
INSTALLED_APPS = (
    ...   
    'multi_captcha_admin',
    'django.contrib.admin',
)
MULTI_CAPTCHA_ADMIN = {
    'engine': 'simple-captcha', # 选择recaptcha2
}
urlpatterns = patterns(
    ...
    url(r'^captcha/', include('captcha.urls')), # and this...
    ...
)
python manage.py migrate  

ps: django-simple-captcha 要求Django > 1.8

最后效果图如下:

你需要知道的添加Django后台验证码的方法_Django_04

其实这django-multi-captcha-admin 这个包直接可以添加方式一的google的验证码方式了,这里面我就没有尝试了。大家有兴趣可以去试试。

 你需要知道的添加Django后台验证码的方法_Django_05