最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Python中Tornado安全Cookie机制的讲解

来源:动视网 责编:小采 时间:2020-11-27 14:20:53
文档

Python中Tornado安全Cookie机制的讲解

Python中Tornado安全Cookie机制的讲解:本篇文章给大家带来的内容是关于Python中Tornado安全Cookie机制的讲解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。Cookie是很多网站为了辨别用户的身份而存储在用户本地终端(Client Side)d的数据,在Tornado中使用Reques
推荐度:
导读Python中Tornado安全Cookie机制的讲解:本篇文章给大家带来的内容是关于Python中Tornado安全Cookie机制的讲解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。Cookie是很多网站为了辨别用户的身份而存储在用户本地终端(Client Side)d的数据,在Tornado中使用Reques


本篇文章给大家带来的内容是关于Python中Tornado安全Cookie机制的讲解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

Cookie是很多网站为了辨别用户的身份而存储在用户本地终端(Client Side)d的数据,在Tornado中使用RequestHandler.get_cookie()、RequestHandler.set_cookie()可以方便地对Cookie进行读写。

实例:Cookie的简单读写

import tornado.web

session_id = 1
class MainHandler(tornado.web.RequestHandler):
 def get(self):
 global session_id
 if not self.get_cookie("session"):
 self.set_cookie("session",str(session_id))
 session_id+=1
 self.write("设置新的session")
 else:
 self.write("已经具有session")

if __name__ == '__main__':
 app=tornado.web.Application([
 ("/",MainHandler)
 ])
 app.listen("8888")
 tornado.ioloop.IOLoop.current().start()

本例中用get_cookie()函数判断Cookie名【session】是否存在,如果不存在则为其赋予新的session_id.

在实际应用中,Cookie经常像本例这样用于保存session信息。
因为Cookie总是被保存在客户端,所以如何保存其不被篡改是服务器端程序必须解决的问题。
Tornado为Cookie提供了信息加密机制,使得客户端无法随意解析和修改Cookie的键值。

实例:安全的Cookie

代码:

import tornado.web

session_id = 1
class MainHandler(tornado.web.RequestHandler):
 def get(self):
 global session_id
 #get_secure_cookie代替get_cookie
 if not self.get_secure_cookie("session"):
 #set_secure_cookie代替set_cookie
 self.set_secure_cookie("session",str(session_id))
 session_id+=1
 self.write("设置新的session")
 else:
 self.write("已经具有session")

if __name__ == '__main__':
 app=tornado.web.Application([
 ("/",MainHandler)
 ],cookie_secret="JIA_MI_MI_YAO")
 app.listen("8888")
 tornado.ioloop.IOLoop.current().start()

对比上面的简单Cookie实例可以发现不同之处:

  • 在tornado.web.Application对象初始化时赋予cookie_secret参数,该参数值时一个字符串,用于保存本网站Cookie加密时的密钥。

  • 在需要读取cookie的地方使用RequestHandler.get_secure_cookie代替原来的RequestHandler.get_cookie调用。

  • 在需要写入Cookie的地方用RequestHandler.set_secure_cookie替换原来的RequestHandler.set_cookie调用,

  • 这样,就不需要担心Cookie伪造的问题了,但是cookie_secret参数值作为加密密钥,需要好好保护,不能泄露。

    文档

    Python中Tornado安全Cookie机制的讲解

    Python中Tornado安全Cookie机制的讲解:本篇文章给大家带来的内容是关于Python中Tornado安全Cookie机制的讲解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。Cookie是很多网站为了辨别用户的身份而存储在用户本地终端(Client Side)d的数据,在Tornado中使用Reques
    推荐度:
    标签: cookie cookies 机制
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top