Python:Tornado 第二章:实战演练:开发Tornado网站:第七节:安全Cookie机制

news/2024/4/28 5:20:01/文章来源:https://blog.csdn.net/weixin_34337265/article/details/88709770
上一篇文章:Python:Tornado 第二章:实战演练:开发Tornado网站:第六节:异步与协程化
下一篇文章:Python:Tornado 第二章:实战演练:开发Tornado网站:第八节:用户身份认证

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

实例:Cookie的简单读写

import tornado.websession_id = 1
class MainHandler(tornado.web.RequestHandler):def get(self):global session_idif not self.get_cookie("session"):self.set_cookie("session",str(session_id))session_id+=1self.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.websession_id = 1
class MainHandler(tornado.web.RequestHandler):def get(self):global session_id#get_secure_cookie代替get_cookieif not self.get_secure_cookie("session"):#set_secure_cookie代替set_cookieself.set_secure_cookie("session",str(session_id))session_id+=1self.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参数值作为加密密钥,需要好好保护,不能泄露。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_778813.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从其他网站抓数据

缘由 吃饭的时候和朋友聊天,谈到他上一个项目,他去抓其他网站的数据,然后用canvas画出走势图。吸引我的是前面的抓数据,以前从来没有尝试过,一定会很有意思了! 开始 听他讲大致就是用jsonp去请求&#xff0…

IDC评述网:7月第二周国内域名主机网站Top15

IDC评述网(idcps.com)07月16日报道:据Alexa数据显示,在7月第二周(7月8日至7月14日)期间,中国万网再以周均用户覆盖数850高居国内域名主机网站榜首。新网和西部数码位列二、三名。用户覆盖数分别为460、370。&#xff0…

网站测试清单

通用 ◇ 所有测试是否运行在干净系统上? ◇ 系统是否正常运行? ◇ 是否显示正确输出? ◇ 系统是否能提供所需功能? ◇ 普通用户是否能轻松地操作该系统? ◇ 是否易学易用? ◇ 系统是否会为客户提供服…

发布内部的普通非加密Web网站

发布内部的普通非加密Web网站&#xff08;2009-1-9&#xff09;实验&#xff1a;发布内部的普通非加密Web网站&#xff08;通过IP地址访问&#xff09;&#xff08;HttpISA ServerHttp&#xff09;<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:o…

php抓取网站图片的程序

2019独角兽企业重金招聘Python工程师标准>>> 此程序实现了网页源代码捕获&#xff0c;图片链接获取、分析、并将同样的图片链接合并功能&#xff0c;实现了图片抓取功能。利用php强大的网络内容处理函数将指定的网站上的所有图片抓取下来&#xff0c;保存在当前目录…

让网站不停止,永远持续运行

在公司内部服务器&#xff0c;运行很多网站(应用程序)&#xff0c;但每个网站都有自动化或是定时执行的事务。后来经整合&#xff0c;所有这些自动化或定时执行的事务&#xff0c;都移至一个单独的站点(asp.net)。这个站点&#xff0c;只要服务器没有关机&#xff0c;重启。它永…

张百川:“知道”网站安全体检初体验

昨天游侠写过一篇文章 [关于几个免费在线挂马检测网站] &#xff0c;说到了北京知道创宇公司的“知道网站安全体检中心”&#xff0c;他们的工作人员很及时的给我发了个内测账号&#xff0c;这里大体说下。当然网址是 http://www.scanv.com 大家可以去申请内测账号。流程基本是…

HTML5网站大观:12个精美的 HTML5 个人网站欣赏

本期的 HTML5 网站大观要与大家分享12个精美的 HTML5 个人网站作品。HTML5 是现在Web开发领域的热点&#xff0c;更多的开发人员开始使用HTML5来开发交互性强、效果出众的Web应用和游戏。希望这些 HTML5 网站实例能帮助大家更好的学习HTML5网站制作。 Tim Potter Henry Brown M…

在地址栏加上网站的标志、LOGO图片

为什么80%的码农都做不了架构师&#xff1f;>>> 第一步&#xff1a;首先你必须要制作一个看起来既清楚又容易辨识的.ico格式的小图片。 我们将图标的大小定义为16x16 像素。此外在制作图形文件的时候&#xff0c;你可能需要把色盘设定成只使用标准的 16 色 Windows…

Centos linux 下配置 apache ,创建虚拟网站访问路径

2019独角兽企业重金招聘Python工程师标准>>> 修改 httpd.conf 文件编辑&#xff1a; vim /etc/httpd/conf/httpd.conf添加内容&#xff1a; Alias /bieming "/opt/www" <Directory "/opt/www"> Options Indexes MultiViews …

网站挂马检测

2019独角兽企业重金招聘Python工程师标准>>> 网站挂马检测 在最近的一次网站优化项目中&#xff0c;我负责的一个网站出现了网站被挂马问题&#xff0c;所以网站的关键词排名很快就从首页消失了。把网站挂马问题解决后&#xff0c;花费了很多的精力才让关键词排名恢…

[Pholcus爬虫] 应对网站反爬虫的多项策略

2019独角兽企业重金招聘Python工程师标准>>> Pholcus应对网站反爬虫的核心思想就是&#xff1a;模仿人工操作 具体应对策略如下&#xff1a; 两次请求之间进行随机暂停 &#xff0c;该时间可以在操作界面设置当不需缓存cookie时&#xff0c;设置Spider.EnableCookie…

创建个人网站

微信公众号&#xff1a;Android部落格 个人网站&#xff1a;chengang.plus 1、方案 采用Github Pages Jekyll的方式。 2、安装Jekyll环境 2.1 安装Ruby 因为网络的原因&#xff0c;Ruby installer安装文件难得下载&#xff0c;下载网址是&#xff1a; https://rubyinstall…

播放rtmp在线网站及播放器

2019独角兽企业重金招聘Python工程师标准>>> 网站地址 http://www.cutv.com/demo/live_test.swf 推流地址 rtmp://ip:8005/live/32010020160918113426717107expxqe 或者采用flash player 也可以 -----------------------------------------------------------------…

跟着百度学PHP[14]-COOKIE的应用/网站登陆案例完整案例

先在数据库当中创建以下数据&#xff1a; mysql> create table user(-> id int not null auto_increment,-> username varchar(50) not null default ,-> password char(32) not null default ,-> email varchar(80) not null default ,-> allow_1 smallint …

网站加速哪家强?四大免费CDN服务评测大PK

之前我把市场上主流的、适合站长用的CDN都介绍了一遍&#xff0c;但随着加速乐与百度分家&#xff0c;百度自家推出云加速后&#xff0c;市场格局再度发生变化。本文&#xff0c;将结合卢松松的亲身体验&#xff0c;来对比360网站卫士、百度云加速、加速乐、安全宝&#xff0c;…

阿里云系列——3.网站备案初步核审(详细步骤)---2015-11.12

网站部署之~阿里云系列汇总 http://www.cnblogs.com/dunitian/p/4958462.html 流程图&#xff1a; 1.注册账号 进&#xff1a;https://beian.gein.cn/account/login.htm 注册一个账号&#xff0c;然后会收到邮件 立即备案 如何办理首次备案&#xff1f;如果您从未办理过备案&am…

WordPress 多站点建站教程(七):多站点函数

1、get_blog_details&#xff08;获取子站点信息&#xff09; 返回多站点博客信息即wp_blogs表。 //显示站点名称 $blog_details get_blog_details(1); echo Blog .$blog_details->blog_id. is called .$blog_details->blogname..;//显示站点总文章数 $blog_details ge…

百度蝶变SEO获奖诊断书分享

导读&#xff1a;这篇诊断书是百度蝶变行动SEO诊断中获奖的14篇中的一篇&#xff0c;诊断的站点本来就是高质量站点&#xff0c;所以可以称此诊断书是SEO进阶版&#xff0c;希望里面的一些SEO建议可以为站长带来帮助&#xff01;百度专家团点评&#xff1a;本届蝶变行动百度着重…

****一步步构建大型网站架构

之前我简单向大家介绍了各个知名大型网站的架构&#xff0c;MySpace的五个里程碑、Flickr的架构、YouTube的架构、PlentyOfFish的架构、WikiPedia的架构。这几个都很典型&#xff0c;我们可以从中获取很多有关网站架构方面的知识&#xff0c;看了之后你会发现你原来的想法很可能…