资讯专栏INFORMATION COLUMN

【python socket编程】—— 5.实现cookie和session

lykops / 2950人阅读

摘要:前文编程实现函数的实现很简单,在服务器返回的响应中,里增加,浏览器接受到中的,下次访问这个网站的请求中就会带上这个。此时服务端解析,根据就知道当前用户是登陆状态的。显然,直接在里写用户的是不安全的。下一篇文章编程简单实现和密码

前文:【python socket编程】—— 4.实现redirect函数


cookie的实现很简单,在服务器返回的响应中,header里增加Set-Cookie,浏览器接受到Set-Cookie中的value,下次访问这个网站的请求中就会带上这个cookie。编写一个增加cookie的函数:

def add_cookie(cookie=""):
    header = "HTTP/1.1 200 OK 
Content-Type: text/html
"
    header += "Set-Cookie: {}
".format(cookie)
    return header

假设用户登录验证成功之后,我们用add_cookie将其用户名username存入到cookie中返回给浏览器,例如承接前文,用户登录成功后给其返回一个302跳转的响应,我们在其中再加入cookie,此时response如下:

HTTP/1.1 302 JUMP 
Content-Type: text/html
Set-Cookie: Harp
Location: /

那么浏览器下次请求,requestheader里就会带上Cookie: Harp这一行了。此时服务端解析request,根据cookie就知道当前用户是登陆状态的。


显然,直接在cookie里写用户的username是不安全的。我们可以把username存在session里,假设session是一个字典,用户登录验证成功后,随机生成一个长的字符串session_id作为keyusername作为value存入session中,然后把session_id作为cookie返回给浏览器,浏览器下次请求时候带上的cookie内容为这个session_id,我们去session里取对应的value即可。


下一篇文章:【python socket编程】—— 6.简单实现render_template和密码hash

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41337.html

相关文章

  • python socket编程】—— 4.实现redirect函数

    摘要:原理就是当浏览器接受到服务器响应的状态码是或者时,表示请求的页面已经永久或临时性转移到了新的位置,而这个新的位置储存在响应的里这个字段。 前文:【python socket编程】—— 3.响应 在Flask框架中有一个redirect函数,用于实现页面的跳转,现在我们来实现它。原理就是:当浏览器接受到服务器响应的状态码是301或者302时,表示请求的页面已经永久或临时性转移到了新的位...

    heartFollower 评论0 收藏0
  • python socket编程】—— 6.简单实现render_template密码hash

    摘要:前文编程实现和在中有函数,用于解析模板,现在我们来简单实现它。密码的加密,可以使用这个库,可以实现等多种方式,例如传入的,会返回加密之后的字符串,值得一提的是的方法,和依次返回的结果是一样。 前文:【python socket编程】—— 5.实现cookie和session 在Flask中有render_template函数,用于解析jinja2模板,现在我们来简单实现它。代码如下:...

    caozhijian 评论0 收藏0
  • 19.设置服务器端Session【番外】

    摘要:在保存登录状态与注销功能这篇文章中,我们使用了来保存,实际上默认的功能,是客户端,与之相对的是服务器端。今天我们来实现服务器端,原理很简单,实际上在编程实现和这篇文章中我们已经做过了。现在我们用数据库来保存,并为其设置有效期。 在11.保存登录状态与注销功能这篇文章中,我们使用了session来保存username,实际上Flask默认的session功能,是客户端session(cl...

    Joyven 评论0 收藏0
  • Python反序列化安全问题

    摘要:反序列化安全问题一这一段时间使用做开发,使用了存储,阅读了源码,发现在存储到过程中,利用了模块进行序列化以及反序列化正好根据该样例学习一波反序列化相关的安全问题,不足之处请各位表哥指出。 Python 反序列化安全问题(一) 这一段时间使用flask做web开发,使用了redis存储session,阅读了flask_session源码,发现在存储session到redis过程中,利用了...

    Amos 评论0 收藏0
  • python socket编程】—— 1.初探

    摘要:从导入相应函数,即传入一个上一步中的类,返回对应的网页内容,具体实现将在后续讲解。后续只要去处理解析请求和响应部分即可,主程序可以不用再修改。下一篇文章编程解析请求头 Flask或者其他框架都是封装的比较完善,我们可以不去关注路由、SESSION等到底是怎么实现的,现在我们使用socket来实现一个带有注册、登录功能的To do网站,这样能对后端框架了解的稍微更深入一点(当然你也可以直...

    int64 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<