在django管理站点上强制使用ssl。

django-sslify-admin的Python项目详细描述


django sslify管理员

在django管理站点上强制使用ssl

安装

要安装django-sslify-admin,只需运行 pip install django-sslify-admin您将得到最新版本 自动安装。

使用量

修改django settings.py文件,并预先 sslifyadmin.middleware.SSLifyAdminMiddleware到您的 MIDDLEWARE_CLASSES设置:

MIDDLEWARE_CLASSES=('sslifyadmin.middleware.SSLifyAdminMiddleware',# ...)

注意:确保sslify.middleware.SSLifyMiddleware是第一个 列出了中间件类,因为这将确保如果用户 不安全请求(通过http),它们将在 任何实际的处理都会发生。如果你打算使用 `i18n_patterns<;https://docs.djangoproject.com/en/dev/topics/i18n/translation/#django.conf.urls.i18n.i18n_patterns>;。`_ 在管理url上,此中间件需要附加在 `django.middleware.locale.LocaleMiddleware<;https://docs.djangoproject.com/en/dev/ref/middleware/#django.middleware.locale.LocaleMiddleware>;`\

自定义管理URL?

如果使用自定义管理URL,则必须设置 SSLIFY_ADMIN_NAMESPACE在您的settings.py

# SSLIFY_ADMIN_NAMESPACE = "admin" # defaultSSLIFY_ADMIN_NAMESPACE="myadminurl"# custom

启用/禁用

默认情况下,如果settings.debug为false,则管理员为sslfing,但对于 由于某些原因(如本地、测试套件),您可能希望删除调试而不触发sslify。 必须在settings.py中设置SSLIFY_ADMIN_DISABLE

SSLIFY_ADMIN_DISABLE=True

在代理后面?(英雄)

如果你的django应用程序在代理(比如heroku)后面,那么 可能正在“吞噬”请求是https的事实,使用非https 代理和django之间的连接。

在这种情况下,您需要配置代理(heroku已经 为您设置一个自定义http头,告诉django 请求是通过https传入的,您需要设置 SECURE_PROXY_SSL_HEADER以便django知道要查找的头 因为,像这样:

SECURE_PROXY_SSL_HEADER=('HTTP_X_FORWARDED_PROTO','https')

注释

此代码是从this StackOverflow thread获取并修改的。 这个项目也受到了兰德尔·德格斯的影响。 django-sslify,用这个, 如果你想保护你的整个网站,而不仅仅是管理界面 在Django。

如果你喜欢这个项目,请考虑给我一个 gittip谢谢!:)

测试

Build Status

$ git clone https://github.com/return1/django-sslify-admin.git
$ cd django-sslify-admin
$ python setup.py develop
...
$ python setup.py test
Creating test database foralias'default'...
..
----------------------------------------------------------------------
Ran 2 tests in 0.003s

OK
Destroying test database foralias'default'...

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
图像处理Java 8 ImageIO在Linux中无法正确读取JPEG   spring如何用Java 1.4兼容版本替换@Resource注释   java Http请求参数类型传播   在web浏览器中看不到Java Maven Tomcatplugin web应用程序   jvm在Java中使用直接内存的目的是什么?   如何从列表转换为字符串java   java setAdapter gridview发送上下文   SwingJava。方法上的lang.NullPointerException   java什么是shell脚本、makefile和ant文件   当使用getGraphics()方法时,java JPanel图形会闪烁   java如何将迭代转换为递归?   java为什么我的抽屉菜单在同一个XML上有ConstraintLayout时没有响应?   java如何在图像上画一个圆?   Android studio:Rabbitmq:Error:java。lang.ClassNotFoundException:类io。千分尺。果心仪器找不到仪表注册表