SECRET_KEY作用

本质上是一个加密盐
SECTET_KEY 在 django在加密,安全方面都有很突出的用处

json object的签名

加密函数中必不可少的,密码重置,表单提交,csrf的key,session数据等等都是需要SELECT_KEY的

这里面就要重点讲到session的问题,在这里使用不当就会导致攻击代码执行

settings的session设置

django默认存储session到数据库中,但是可能会比较慢,就会使用到缓存,文件,还有cookie等方式

如果采用了cookie机制,settings配置如下:

SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'

版本问题:django 1.6以下

在django1.6以下,session默认是采用pickle执行序列号操作

在1.6及以上版本默认采用json序列化。代码执行只存在于使用pickle序列号的操作中。

session处理流程

可以简单的分为两部分
process_request负责选择session引擎

process_response初始化cookie数据

代码

class SessionMiddleware(object):def process_request(self, request):engine = import_module(settings.SESSION_ENGINE)session_key = request.COOKIES.get(settings.SESSION_COOKIE_NAME, None)request.session = engine.SessionStore(session_key)

process_response 是用来处理 返回给用户的信息,这包括有关cookie的一些信息,比如修改过期时间等等。

在将session存入缓存后,可能在某个操作中会用到session信息,这个时候就会通过反序列化操作从缓存中取SECRET__KEY

如果反序列化引擎是采用pickle机制的话就有可能存在攻击代码执行。

反序列化的代码位于django.core.signing.py中,这个模块主要是一些签名,加解密操作,同时也包含序列化和反序列化,默认采用JSON引擎

反序列化loads的代码:

def loads(s, key=None, salt='django.core.signing', serializer=JSONSerializer, max_age=None):"""Reverse of dumps(), raises BadSignature if signature fails"""base64d = smart_str(TimestampSigner(key, salt=salt).unsign(s, max_age=max_age))decompress = Falseif base64d[0] == '.':# It's compressed; uncompress it firstbase64d = base64d[1:]decompress = Truedata = b64_decode(base64d)if decompress:data = zlib.decompress(data)return serializer().loads(data)
其攻击方式为:
首先泄露了SECRET_KEY
其次session引擎采用了signed_cookies
之后就是根据SECRET_KEY反序列化得到所想要得到的。。。

注:

django版本小于1.6即存在攻击代码执行问题。
同样的问题也存在于python的其他web框架中,如flask,bottle。

SECRET_KEY的重要性相关推荐

  1. 残差复合正态分布的重要性

    如果结果残差不是正态分布 说明用线性回归来拟合数据是不合适的 可能是非线性回归 这里的类是对应因变量的取值 如果是连续型的那就只有一类 销售量 如果是离散型的那就有几类就假设几类 黑白球 当总体只有一 ...

  2. 勇敢的交流者在敏捷组织中的重要性

    在Scrum做任何事都需要把一套价值作为团队流程和交互的基础.勇敢正是其中之一.因为在scrum中所有人保持着团队协作,每个成员都能够感受到团队的支持.这让他们有勇气去承担更加艰巨的挑战. \ Dan ...

  3. python随机森林筛选变量_变量重要性随机森林在R中是否有类似Python的rfpimp来分组共线变量...

    早上好 我在R(randomForest,caret)中的随机林实现中使用置换重要性对变量进行排序.所有变量都是连续的,结果是明确的.在 为了处理共线特性Terence Parr,Jeremy How ...

  4. R语言编写自定义函数、评估回归模型预测变量的相对重要性(Relative importance)、通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加、评估预测变量的重要度、并通过点图可视化

    R语言编写自定义函数.评估回归模型预测变量的相对重要性(Relative importance).通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加.来评估预测变量的重要程度.并通过点图可 ...

  5. 偏依赖图(Partial Dependence Plots)是什么?排列重要性(Permutaion Importance)是什么?如何解读?有什么意义?

    偏依赖图(Partial Dependence Plots)是什么?排列重要性(Permutaion Importance)是什么?如何解读?有什么意义? 目录 偏依赖图(Partial Depend ...

  6. 特征选择之嵌入法、嵌入法、排列重要性

    特征选择之嵌入法.嵌入法.排列重要性 目录 特征选择之嵌入法.嵌入法.排列重要性 嵌入法 排列重要性 嵌入法

  7. 特征重要性、特征集成+FeatureUnion、特征选择变换器+ColumnTransformer、标签特征变换+TransformedTargetRegressor、特征质量、自动学习数据中的特征

    特征重要性.特征集成+FeatureUnion.特征选择变换器+ColumnTransformer.标签特征变换+TransformedTargetRegressor.特征质量.自动学习数据中的特征 ...

  8. 基于模型(Model-based)进行特征选择(feature selection)并可视化特征重要性(feature importance)

    基于模型(Model-based)进行特征选择(feature selection)并可视化特征重要性(feature importance) sklean 中的 SelectFromModel进行特 ...

  9. 随机森林RF中的特征重要性的计算公式VIM

    特征重要性评估 现实情况下,一个数据集中往往有成百上前个特征,如何在其中选择比结果影响最大的那几个特征,以此来缩减建立模型时的特征数是我们比较关心的问题.这样的方法其实很多,比如主成分分析,lasso ...

最新文章

  1. java期_java日期 时间
  2. C++成员变量指针和成员函数指针【The semantics of funcitons】
  3. kafka channle的应用案例
  4. java大乘期(33)----java进阶(springboot基础(1)----springboot基本概念)
  5. 分区报无效的参数_西门子70系列变频器55KW上电就报F002故障维修
  6. [机器学习]AutoML---谷歌开源AdaNet:基于TensorFlow的AutoML框架
  7. servlet面试常考 (转载)
  8. [蓝桥杯2018初赛]递增三元组-双指针,枚举,排序,前缀和
  9. Python入门-行和缩进
  10. commit git 删除文件夹_Git-git删除文件夹/文件(删除/不删除本地文件/文件夹)
  11. 打不过 Chrome 的 Firefox,我为什么要选择?
  12. 2019届[月考01-03]高三理科数学试题参考答案
  13. oracle函数 power(x,y)
  14. paip.lucene 4.3 中文语义搜索最佳实践
  15. 管理小故事100例1
  16. 配置路由器console接口密码和vty接口密码
  17. raspberry(树莓派)的简介及实验
  18. [AHK]给PPT插入图片
  19. 360P2建html网站,如何自己建网站
  20. java开发的公文管理系统源代码_基于jsp的公文管理系统-JavaEE实现公文管理系统 - java项目源码...

热门文章

  1. 功率因数优化如何节省高达25%的电费
  2. Android 新浪微盘API调用出现的问题
  3. ubuntu安装时无法检测到win10系统的问题解决方法
  4. 网络安全从业者必看 注册网络安全等级测评工程师考证解读
  5. 中基鸿业家庭怎么理财
  6. 关于python画图:我是一个宠妻之人 哈哈哈
  7. 网络音乐收听方式的创新--豆瓣FM
  8. SATA控制器学习资料整理
  9. 类拼多多商城系统开发纪实(多终端多商户)
  10. 克服田间果园环境下非结构化背景挑战的果实检测优化策略