首页 > 代码库 > Tornado(二)
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 + ")")); }}); };
Tornado(二)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。