Django保护敏感信息的方法示例


Posted in Python onMay 09, 2019

Django在安全性上表现出色,但是在日常开发中难免会有没有注意到的地方,今天我们就讲一个非常有用的技巧。

千万不要在正式环境中设置DEBUG=True,除非你想跑路

sensitive_variables

众所周知Django的发生异常的时候会有错误信息,弄不好,不怀好意的人就通过这些不经意的信息,提出到铭感信息,我们可以使用sensitive_variables处理敏感信息。

from django.views.decorators.debug import sensitive_variables

@sensitive_variables('user', 'password', 'other')
def process_info(user):
  password = user.pass_word
  other = user.credit_card_number
  name = user.name
  ...

这样在发生错误的时候Django会做脱敏处理。

保护所有变量

@sensitive_variables()
def my_function():
  ...

注意:如果有多个装饰器,需要把这个放在第一个。

处理post的sensitive_post_parameters

sensitive_post_parameters 和上面的类似只是它是用来处理post请求的。

from django.views.decorators.debug import sensitive_post_parameters

@sensitive_post_parameters('pass_word', 'credit_card_number')
def record_user_profile(request):
  UserProfile.create(
    user=request.user,
    password=request.POST['pass_word'],
    credit_card=request.POST['credit_card_number'],
    name=request.POST['name'],
  )

或者处理所有参数

@sensitive_post_parameters()
def my_view(request):
  ...

更多信息请阅读: 官方文档

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python学习笔记(一)(基础入门之环境搭建)
Jun 05 Python
Python自动登录126邮箱的方法
Jul 10 Python
利用ctypes提高Python的执行速度
Sep 09 Python
python实现可以断点续传和并发的ftp程序
Sep 13 Python
Python中的命令行参数解析工具之docopt详解
Mar 27 Python
使用python实现BLAST
Feb 12 Python
java中两个byte数组实现合并的示例
May 09 Python
python-序列解包(对可迭代元素的快速取值方法)
Aug 24 Python
Python socket 套接字实现通信详解
Aug 27 Python
Python+OpenCV实现实时眼动追踪的示例代码
Nov 11 Python
python装饰器使用实例详解
Dec 14 Python
django 获取字段最大值,最新的记录操作
Aug 09 Python
Python基于scipy实现信号滤波功能
May 08 #Python
python实现抽奖小程序
Apr 15 #Python
Python常见数据类型转换操作示例
May 08 #Python
Python数据类型之Number数字操作实例详解
May 08 #Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 #Python
Python数据类型之String字符串实例详解
May 08 #Python
Python数据类型之List列表实例详解
May 08 #Python
You might like
C# Assembly类访问程序集信息
2009/06/13 PHP
php采集文章中的图片获取替换到本地(实现代码)
2013/07/08 PHP
十幅图告诉你什么是PHP引用
2015/02/22 PHP
smarty高级特性之过滤器的使用方法
2015/12/25 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
基于jQuery实现点击弹出层实例代码
2016/01/01 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
基于JavaScript实现选项卡效果
2017/07/21 Javascript
input输入框内容实时监测(附代码)
2017/08/15 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
2018/02/23 Javascript
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
微信小程序 下拉刷新及上拉加载原理解析
2019/11/06 Javascript
NodeJS多种创建WebSocket监听的方式(三种)
2020/06/04 NodeJs
浅谈vue的第一个commit分析
2020/06/08 Javascript
vue 实现setInterval 创建和销毁实例
2020/07/21 Javascript
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
2015/02/04 Python
python3编码问题汇总
2016/09/06 Python
详谈python read readline readlines的区别
2017/09/22 Python
Django添加sitemap的方法示例
2018/08/06 Python
python单例模式实例解析
2018/08/28 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
Big Green Smile德国网上商店:提供各种天然产品
2018/05/23 全球购物
英国复古和经典球衣网站:Vintage Football Shirts
2018/10/05 全球购物
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
计算机系毕业生推荐信
2013/11/06 职场文书
运动会四百米广播稿
2014/01/19 职场文书
建筑结构施工专业推荐信
2014/02/21 职场文书
结婚喜宴主持词
2014/03/14 职场文书
婚前协议书
2014/04/15 职场文书
学校评语大全
2014/05/06 职场文书
网络营销计划书
2015/01/17 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
导游词之青岛太清宫
2019/12/13 职场文书
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
2021/04/06 Python
gojs实现蚂蚁线动画效果
2022/02/18 Javascript