博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tornado 之 csrf
阅读量:7072 次
发布时间:2019-06-28

本文共 1069 字,大约阅读时间需要 3 分钟。

csrf用于防止跨站请求伪造

启用csrf后,在get访问时分配给客户端一个token,客户端在提交POST时请求时需提交此token才可以正常提交,

如果没有提交或提交的token值不正确,那么提交后就会被“403: Forbidden”阻止

使用csrf时,首先在setting中开启使用csrf:

settings = {	'template_path':'views',	'static_path':'static',	'xsrf_cookies': True,}

一、通过form表单的方式来进行POST提交

在模板的form表单中添加上获取token的输出:

{% raw xsrf_form_html() %}

服务端的程序:

class XcrfHandler(BaseHandler):    def get(self, *args, **kwargs):        self.render('login.html')    def post(self, *args, **kwargs):        self.write('Csrf_POST')

 二、使用Ajax进行异步POST提交

启用了使用csrf后,在get方式浏览的某个页面后,服务端程序会想Cookie中写入token信息

在使用Ajax进行异步提交时可以通过获取cookie中的token信息来进行提交

function getCookie(name) {        var r = document.cookie.match("\\b"+name+"=([^:]*)\\b");        return r ? r[1] : undefined;    }    function ajaxSubmit(){        $.ajax({            url: "/csrf/",            type:'POST',            data: {id:123, _xsrf:getCookie("_xsrf")},            success: function(r){                console.log(r)            }        });    }

  

 

转载于:https://www.cnblogs.com/crucial/p/6661594.html

你可能感兴趣的文章
maven 打包时提示 软件包 xxxxxxx 不存在
查看>>
对 Git 分支 master 和 origin/master 的一些认识
查看>>
jquery widgets 弹框
查看>>
Linux系统管理命令之权限管理
查看>>
取汉子拼音首字母的VB.Net方法
查看>>
使用Maven对JAVA程序打包-带主类、带依赖【转】
查看>>
[CSS] 点击事件触发的动画
查看>>
飞鱼星路由器配置端口映射
查看>>
《Linux Device Drivers》第十八章 TTY驱动程序——note
查看>>
virtual的使用方法
查看>>
POJ 1321 棋盘问题(DFS板子题,简单搜索练习)
查看>>
POJ 3155 Hard Life(最大密度子图)
查看>>
剑英的区块链学习手记(二)
查看>>
.Net接口调试与案例
查看>>
SQL Server 中BIT类型字段增删查改那点事
查看>>
【Java集合源代码剖析】TreeMap源代码剖析
查看>>
【算法】 算法和数据结构绪论
查看>>
LeetCode OJ 之 Ugly Number II (丑数-二)
查看>>
(一)Thymeleaf用法——Thymeleaf简介
查看>>
【Python】 命名空间与LEGB规则
查看>>