【tornado】tornado路由系统以及加密cookie在项目中的使用详解

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 【tornado】tornado路由系统以及加密cookie在项目中的使用详解

tornado路由系统

在web框架中,路由表中的任何项都是一个元组,每个元组都包含模式和处理程序。当httpserver收到http请求时,服务器从收到的请求中解析url路径(在http协议开始行中),然后顺序遍历路由表。如果url路径可以匹配模式,则http请求将发送到web应用程序中的相应处理程序进行处理。
由于url路由机制,web应用程序开发人员不必处理复杂的http服务器层代码,只需编写web应用程序层(处理程序)的逻辑即可。Tornado中的每个url都对应一个类。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__auth__ = "zhangyanlin"
 
import tornado.web
import tornado.ioloop
 
class IndexHandler(tornado.web.RequestHandler):
 
    def get(self, *args, **kwargs):
        self.write("Hello World, My name is 张岩林")
 
class LoginHandler(tornado.web.RequestHandler):
 
    def get(self, *args, **kwargs):
        self.write("<input type = 'text'>")
 
class RegisterHandler(tornado.web.RequestHandler):
 
    def get(self, *args, **kwargs):
        self.write("<input type = 'password'>")
 
application = tornado.web.Application([
    (r'/index/(?P<page>\d*)',IndexHandler),  # 基础正则路由
    (r'/login',LoginHandler),
    (r'/register',RegisterHandler),
])
 
# 二级路由映射
application.add_handlers('buy.zhangyanlin.com$',[
    (r'/login', LoginHandler),
])
 
if __name__ == "__main__":
    application.listen(8080)
    tornado.ioloop.IOLoop.instance().start()

步骤1:执行脚本并侦听端口8080
步骤2:浏览器客户端访问/索引-->http://127.0.0.1:8080/index
步骤3:服务器接受请求并将其发送到相应的类以处理请求
步骤4:收到请求后,类根据不同的请求方法调用并执行相应的方法(post/get/delete…)
步骤5:然后将类方法返回到浏览器

settings = {    'template_path':'views',         
    'static_path':'static',           
    css,JS,Jquery等静态文件放置static文件夹中
    'static_url_prefix': '/sss/',     
    <script src="/sss/jquery-1.9.1.min.js"></script>
    'cookie_secret': "asdasd",           
    'xsrf_cokkies':True,                }
application = tornado.web.Application([
    (r'/index',IndexHandler),
],**settings)                        

Tornao中的模板语言与django中的类似。模板引擎将模板文件加载到内存中,将数据嵌入其中,最后获得一个完整的字符串,然后将其返回给请求者。
Tornado的模板支持“控制语句”和“表达式语句”。控制语句用{%和%}包装,例如{%if len(items)>2%}。表达式语句用{{和}}包装,例如{{{items[0]}}。
控制语句和相应的Python语句的格式基本相同。我们支持if、for、while和try。这些语句的逻辑结尾需要标记为{%end%}。它还通过扩展和块语句实现模板继承。

加密cookie

恶意客户端很容易伪造Cookie。添加要在cookie中保存当前登录用户的ID和其他信息。你需要在cookie上签名以防止伪造。Tornado通过set_secure_Cookies和get_secure_cookie方法直接支持此功能。要使用这些方法,需要在创建application_secret时提供一个名为cookie的密钥可以将其作为关键字参数导入应用程序设置:

#!/usr/bin/env python# -*- coding:utf-8 -*-
   import tornado.ioloopimport tornado.web    
class MainHandler(tornado.web.RequestHandler):    def get(self):         if not self.get_secure_cookie("mycookie"):             # 获取带签名的cookie
             self.set_secure_cookie("mycookie", "myvalue")      # 设置带签名的cookie
             self.write("Your cookie was not set yet!")         else:
             self.write("Your cookie was set!")
application = tornado.web.Application([
    (r"/index", MainHandler),
])   
if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

使用cookie执行简单的用户定义身份验证。接下来,我们将编写一个非常棒的用户定义会话用户身份验证

使用Python生成随机验证代码需要引用插件和IO模块,这也非常容易实现。当然,它还需要参考会话来确定验证码是否错误。接下来,用验证代码编写一节用户登录验证,然后查看效果。插件和执行文件必须放在不同的目录中
在这里插入图片描述设置cookie,指定秒数过期,
name表示传入的key,
value表示传入相对应的value值,
expires表示当前日期在加5秒过期

/function setCookie(name,value,expires){
    var temp = [];
    var current_date = new Date();
    current_date.setSeconds(current_date.getSeconds() + 5);
    document.cookie = name + "= "+ value +";expires=" + current_date.toUTCString();
}

最初,我想打开一个新的帖子,但我最好将代码粘贴在这里。当它对会话验证有用时,可以直接复制并带走.

相关文章
|
5月前
|
数据安全/隐私保护
18、cookie注入(base64加密)
18、cookie注入(base64加密)
51 0
|
5月前
|
SQL 安全 网络安全
网络安全与信息安全:漏洞、加密与安全意识的探讨移动应用与系统:探索未来的无限可能
【5月更文挑战第31天】在数字化时代,网络安全与信息安全已经成为我们生活中不可或缺的一部分。本文将深入探讨网络安全漏洞、加密技术以及安全意识的重要性,以期提高公众对网络安全的认识和防范意识。
|
2月前
|
数据采集 JavaScript 前端开发
同花顺股票数据逆向:Cookie加密和Hook注入
同花顺股票数据逆向:Cookie加密和Hook注入
90 0
|
4月前
|
存储 安全 网络协议
Django路由与会话深度探索:静态、动态路由分发,以及Cookie与Session的奥秘
Django路由与会话深度探索:静态、动态路由分发,以及Cookie与Session的奥秘
|
4月前
|
安全 网络协议 网络安全
【红队APT】反朔源&流量加密&CS&MSF&证书指纹&C2项目&CDN域前置
【红队APT】反朔源&流量加密&CS&MSF&证书指纹&C2项目&CDN域前置
|
3月前
|
安全 数据安全/隐私保护
支付系统之微信支付08-身份认证,公钥和私钥的含义,私钥自己有的,作为唯一的控制系统,私钥加密,公钥解密是为了身份认证
支付系统之微信支付08-身份认证,公钥和私钥的含义,私钥自己有的,作为唯一的控制系统,私钥加密,公钥解密是为了身份认证
|
3月前
|
算法 安全 数据安全/隐私保护
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹
|
5月前
|
PHP 数据安全/隐私保护
PHP在线加密系统网站源码
这个是sg的加密,免费可用(目前)并不会收费 源码说明:下载直接上传即可
61 1
PHP在线加密系统网站源码
|
5月前
|
安全 数据管理 测试技术
网络安全与信息安全:防范漏洞、加强加密与提升安全意识深入探索自动化测试框架的设计原则与实践应用化测试解决方案。文章不仅涵盖了框架选择的标准,还详细阐述了如何根据项目需求定制测试流程,以及如何利用持续集成工具实现测试的自动触发和结果反馈。最后,文中还将讨论测试数据管理、测试用例优化及团队协作等关键问题,为读者提供全面的自动化测试框架设计与实施指南。
【5月更文挑战第27天】 在数字化时代,网络安全与信息安全已成为维护国家安全、企业利益和个人隐私的重要环节。本文旨在分享关于网络安全漏洞的识别与防范、加密技术的应用以及提升安全意识的重要性。通过对这些方面的深入探讨,我们希望能为读者提供一些实用的建议和策略,以应对日益严峻的网络安全挑战。 【5月更文挑战第27天】 在软件开发周期中,自动化测试作为保障软件质量的关键步骤,其重要性日益凸显。本文旨在剖析自动化测试框架设计的核心原则,并结合具体案例探讨其在实际应用中的执行策略。通过对比分析不同测试框架的优缺点,我们提出一套高效、可扩展且易于维护的自动
|
5月前
|
存储 安全 数据库
数据安全之认识数据库加密系统
信息安全的关键在于数据的安全,而数据的安全则主要通过数据加密技术来实现。随着网上购物等电子商务的兴起和繁荣,以数据库为代表的信息安全已成为很多企业的共识。越来越多的企业和机构开始重视数据库的数据安全问题,因为一旦数据泄露或遭到非法访问,将可能导致严重的经济损失和声誉损害。为了增强普通关系数据库管理系统的安全性,数据库加密系统应运而生。
153 0