Tornado(二)

跨站请求伪造CSRF

开启xsrf(就是叫法不一样和csrf一样),‘xsrf_cookies‘:True

settings = {
    ‘template_path‘:‘template‘,
    ‘static_path‘:‘static‘,
    ‘static_path_prefix‘:‘/static/‘,
    ‘xsrf_cookies‘:True,
}

在post表单中增加csrf认证

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="{{static_url("commons.css")}}" rel="stylesheet" />
</head>
<body>
<h1>index.html</h1>
<h1>{{ name }}</h1>
<form action="/index" method="post">    {% module xsrf_form_html() %}
    <p>user:<input type="text"/></p>
    <p>password:<input type="password" /> </p>
    <input type="submit" value="submit" />
</form>
</body>
</html>

网站请求效果(表单中没有增加认证token):

加上token

AJAX方法

官方提供:

获取cookie的token信息  args._xsrf = getCookie("_xsrf");
function getCookie(name) {
    var r = document.cookie.match("\\b" + name + "=([^;]*)\\b");
    return r ? r[1] : undefined;
}

jQuery.postJSON = function(url, args, callback) {
    args._xsrf = getCookie("_xsrf");
    $.ajax({url: url, data: $.param(args), dataType: "text", type: "POST",
        success: function(response) {
        callback(eval("(" + response + ")"));
    }});
};
时间: 2024-10-14 11:51:23

Tornado(二)的相关文章

tornado—–Handler Url正则

转自:http://my.oschina.net/jiemachina/blog/204878 tornado(二)—–Handler Url正则 handler url正则匹配, get/post 1. 简单 application = tornado.web.Application([ (r'/', MainHandler) ], **settings) 2. 带有参数 class ProfileHandler(RequestHandler): def initialize(self, da

Tornado之初学者(一)

Tornado特点一句话简介:Tornado是非阻塞式的Web服务器,速度非常快,每秒可以处理数以千计的链接,因此Tornado是实时Web服务的一个理想框架. 一.安装Tornado使用pip安装即可:pip install tornado 二.运行Tornado的helloworld所需的基本组成 #!/usr/bin/env python # -*- coding: utf-8 -*- import tornado.web import tornado.ioloop # 用于处理网页的请求

tornado 01 路由、输入与输出

一.安装tornado [email protected]:~$ workon py3env #安装python3的虚拟环境 (py3env) [email protected]:~$ pip install tornado #安装tornado 二.使用tornado #创建一个py文件,然后在虚拟机中打开文件即可 #要让服务一直在运行当中,这就要用到tornado.ioloop模块 #为了便于开发,就要用到tornado.web模块 import tornado.ioloop #开启循环,让

tornado框架的简单实用

一.安装模块 pip3 install tornado 二.简单的起服务的方法 import json, datetime from tornado.web import RequestHandler, Application from tornado.ioloop import IOLoop from tornado.httpserver import HTTPServer from tornado.options import define, options # 异步 import torn

pip下载加速的方式

两种方式 一.临时方式 可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple. 例如下载或者更新: 下载:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tornado 更新:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade tornado 二.永久修改 如果你不想临时使用,想永久性的,那么

Python框架之Tornado(二)请求阶段

概述 上图是tornado程序启动以及接收到客户端请求后的整个过程,对于整个过程可以分为两大部分: 启动程序阶段,又称为待请求阶段(上图1.2所有系列和3.0) 接收并处理客户端请求阶段(上图3系列) 简而言之: 1.在启动程序阶段,第一步,获取配置文件然后生成url映射(即:一个url对应一个XXRequestHandler,从而让XXRequestHandler来处理指定url发送的请求):第二步,创建服务器socket对象并添加到epoll中:第三步,创建无线循环去监听epoll. 2.在

认识tornado(二)

前面我们对 Tornado 自带的 hello world 作了代码组织上的解释,但是没有更加深入细致地解释.这里我们直接从main()函数开始,单步跟随,看看tornado都干了些什么. 下面是 main() 函数的定义: 1 def main(): 2 tornado.options.parse_command_line() 3 application = tornado.web.Application([ 4 (r"/", MainHandler), 5 ]) 6 http_se

web(二)---tornado模板

一. 接上两节, 修改index.py如下: 增加了/index.py/template和处理句柄. import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") class TemplateHandler(tornado.web.RequestHandler): def get(self)

Tornado/Python 学习笔记(二)

部分ssrpc.py代码分析 -- 服务端: 1 #!/usr/bin/python3 2 3 from xmlrpc.client import Fault, dumps, loads 4 import sys 5 from socketserver import ForkingMixIn 6 from xmlrpc.server import SimpleXMLRPCServer 7 8 class VerboseFaultXMLRPCServer(SimpleXMLRPCServer):