django在安全性上表现出色,但是在日常开发中难免会有没有注意到的地方,今天我们就讲一个非常有用的技巧。
千万不要在正式环境中设置debug=true,除非你想跑路
sensitive_variables
众所周知django的发生异常的时候会有错误信息,弄不好,不怀好意的人就通过这些不经意的信息,提出到铭感信息,我们可以使用sensitive_variables处理敏感信息。
1
2
3
4
5
6
7
8
|
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会做脱敏处理。
保护所有变量
1
2
3
|
@sensitive_variables () def my_function(): ... |
注意:如果有多个装饰器,需要把这个放在第一个。
处理post的sensitive_post_parameters
sensitive_post_parameters 和上面的类似只是它是用来处理post请求的。
1
2
3
4
5
6
7
8
9
10
|
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' ], ) |
或者处理所有参数
1
2
3
|
@sensitive_post_parameters () def my_view(request): ... |
更多信息请阅读:官方文档
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://litets.com/article/2019/5/8/393.html