gpt4 book ai didi

python-2.7 - 'secret_key'在webapp2框架中代表什么?

转载 作者:太空宇宙 更新时间:2023-11-03 15:37:48 25 4
gpt4 key购买 nike

我只是在玩弄 google app engine、webapp2 和 python;我只是为了好玩而构建一个小玩具应用程序。 一个小的旁注,将 ndb 用于谷歌应用引擎数据存储。

随着构建一个小型网络应用程序,随之而来的是 session 。

我正在阅读有关 session 的 webapp2 文档,以及该网站上关于如何设置 session 的 HitTest 门主题。我不了解这个过程的是配置中的一小段代码。

config = {}
config['webapp2_extras.sessions'] = {
'secret_key': 'my-super-secret-key',
}

我是网络开发的新手。但是,在使用相同框架构建其他较小的应用程序时,我执行了以下操作来构建安全的散列 cookie。

 user_key = user_key.id()
user_cookie = self.request.cookies.get('user_cookie', None)

self.response.headers.add_header('Set-Cookie','user=%s|%s' % (user_cookie, hash_string(user_cookie)))
self.write('Thank you for sigining up! And, welcome %s' % user.name)

这就是上面配置代码的第一部分试图完成的吗?换句话说,这个 key 有什么用?

此外,假设我想将“ session ”cookie 设置为用户 ID。下面的代码是执行此操作的正确方法吗?

self.session[name] = user_key.id()
session_info = self.session.get(name)

谢谢。

最佳答案

当您调用 self.request.cookies.get(' user_cookie',无)

cookie 与数字签名一起不断地从客户端传递到服务器。当客户端在每次请求时向服务器提供 cookie 值时,它会使用服务器提供的数字签名。每次服务器对当前 cookie 值进行签名时,如果客户端传入的签名与当前服务器值不匹配,则服务器知道 cookie 的参数已被篡改。这可以防止恶意客户端试图冒充其他用户或以其他方式执行未经授权的操作。

此方案仅在服务器知道 key 的情况下才有效,否则任何客户端也可以签署服务器会接受的 cookie。因此 secret_key

webapp2 中默认的签名算法是HMAC-SHA1 .

Also, quickly, when I look at the cookie set by instantiating sessions, it is an extremely long string

这是 the code如果您好奇,服务器会使用它来验证 cookie。您会注意到该 cookie 是 base64 编码的 json 文档。

Now I suppose that the value of secret_key can then be any string that you'd like it to be, correct?

正如他们从 RFC 2104 中阐明的那样 security thread任何包含 20 个或更多随机选择字节的字符串都适用于 HMAC-SHA1。

Also, lets say I want to set the 'sessions' cookie to the user id

我认为这可能是 example你正在寻找。

关于python-2.7 - 'secret_key'在webapp2框架中代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41067932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com