用于调试和使用内置烧瓶会话cookie的工具

flask-cookie-decode的Python项目详细描述


烧瓶饼干解码图片::https://travis-ci.com/wgwz/flask-cookie-decode.svg?branch=master
:目标:https://travis ci.com/wgwz/flask cookie decode

…内容:

…节编号:

purpose
==


在内置的flask cli中添加一个"cookie"命令,该命令将提供各种
工具,用于调试flask默认使用的安全会话cookie。

` flask cookie decode`:解码并验证会话cookie的签名


后台
==


默认情况下,flask会话使用签名cookie存储其数据。flask
应用程序使用其"密钥"对cookie进行签名。这为flask
应用程序提供了一种检测会话数据任何篡改的方法。如果应用程序
确实使用密钥和安全哈希算法,则会话签名
将是应用程序独有的。

有关烧瓶会话主题的更多信息,请参阅以下参考资料:

*`烧瓶用户会话的安全性如何?`
*`烧瓶会话的快速启动`\u
*`烧瓶会话的API文档`\u

…_`烧瓶用户会话的安全性如何?`:https://blog.miguelgrinberg.com/post/烧瓶用户会话的安全性如何
…_`烧瓶会话的快速启动`:http://flask.pocoo.org/docs/1.0/quickstart/sessions
。_`烧瓶会话的api文档`:http://flask.pocoo.org/docs/1.0/api/sessions


免责声明:保守秘密,秘密!
---------------------------


如果公开此密钥,应用程序将容易受到会话重播攻击。`下面是一个例子,应用程序在404个错误期间公开了"secret"密钥。该示例还演示了会话重放的工作原理。

默认情况下,flask不会在任何地方公开"secret_key"。这取决于你
开发人员保持这种方式!

…_`下面是一个示例`:https://terryvogelsang.tech/mitrectf2018 My Flask app/


用法
=



代码块::bash

$pip install flask cookie decode


图片::https://raw.githubusercontent.com/wgwz/flask cookie decode/master/docs/cookie.png
:alt:在浏览器工具中查找cookie
:宽度:100%
:align:center

https://github.com/wgwz/flask cookie decode/blob/master/examples/app.py>;` ` ` `:

…代码块:python

从flask_cookie_decode import cookiedecode请求

app=flask(uu name_uu)
app.config.update({'secret_u key':'jlghasdhhasdhgahsdg'})
cookie=cookiedecode()
cookie.init_app(app)

@app.route('/')
def index():
a=request.args.get('a')
session['a']=a
返回jsonify(dict(session))


使用cli的示例:
----


1。具有有效签名的cookie:

…代码块::bash

$export flask_app=app.py
$flask cookie解码eyjhijoixnkyxnkamtqyxnkin0.xckk1q.ttpu2zhvn9kxgkp35eragyd8mza
trustedcookie(内容={a':'asdasdjkjasd',过期时间='2019-01-30t20:04:37')

2。签名无效的cookie:

…代码块::bash

$export flask_app=app.py
$flask cookie解码eyjhijoixnkyxnkamtqyxnkin0.xckk1q.ttpu2zhvn9kxgkp35eragyd8mza
不可靠的内容(内容={a':'asdasdjkjasd',过期时间='2019-01-30t20:04:37')

3。过期的cookie:

…代码块::bash

$export flask_app=app.py
$flask cookie解码eyjhijoiyxnkyxkamtqyxnkin0.xckk1q.ttpu2zhvn9kxgkp35eragyd8mza
过期的cookie(内容={a':'asdasdjkjasd'},过期时间='2019-01-30t20:04:37')



文档
===

`docs<;https://flask cookie decode.readthedocs.io/en/latest/>;`

==

`mit<;https://github.com/wgwz/flask cookie decode/blob/master/license>;` `.



==
=
历史记录Towncrier发行说明开始

Flask_Cookie_decode 0.3.0(2019-01-05)
=====


BugFixes
--


-在所有以前的版本中,带有"timestamp"cli标志的cli实际上都是在返回cookie时的时间戳时
签署。*不是*cookie过期时的时间戳,正如它应该做的那样。

在所有以前的版本中,对过期的cookie没有错误处理。当检测到"expiredcookie"时,此
版本现在返回"expiredcookie"。(1)




改进的文档
——


-更新文档以包含有关
烧瓶会话工作方式的更多详细信息,以及从安全角度应注意的事项。文档还反映了最新的cli工作方式。(1)



>0.1.0(2018-12-29)
====


*在PYPI上首次发布。




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

推荐PyPI第三方库


热门话题
netbeans根据命名约定返回布尔类的getter的Java名称   java如何在MessageFormat中使用单引号   java如何在整数数组中只对奇数排序,而将偶数保留在其原始位置?   自定义ArrayAdapter中未定义java构造函数   java joda时间格式化程序解析yyyyymmdd(额外一小时)   java Spring引导控制器测试始终返回404   java如何提取类文件以获取该类文件中的类?   JTable java列不会显示   java Selenium Web驱动程序输出错误的Web表行数   当应用程序在mac上打开时,java SWT选项卡项会从页面上消失   java如何将html文件映射到过滤器   swing Java计算一段时间内两点之间的转换   javawebsphere和javax。xml。ws。spi。提供者:提供者组织。阿帕奇。axis2。jaxws。spi。提供者不是子类型   For循环在Java中没有按预期继续?   java如何配置gson以排除0个整数值   java读取一个由tab分隔的文件,并将单词放入ArrayList中   java我需要做什么才能让LiveConnect重新工作?   sqlservermerge2xml&使用java提取这些数据并将其存储在db表中   java如何在模型中添加新对象时通知网格