分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

Csrf ?及ajax的csrf 请求

发布时间:2023-09-06 01:29责任编辑:董明明关键词:暂无标签
#!/usr/bin/python# -*- coding: UTF-8 -*-#验证码import tornado.ioloopimport tornado.webclass CrsfHandler(tornado.web.RequestHandler): ???def get(self, *args, **kwargs): ???????self.render("crsf.html") ???def post(self, *args, **kwargs): ???????self.write("csrf.post")settings = { ???"xsrf_cookies": True,}class CheckCodeHandler(tornado.web.RequestHandler): ???def get(self): ???????import io ???????import check_code ???????mstream = io.BytesIO() ???????# 创建图片 写入验证码 ???????img, code = check_code.create_validate_code() ???????# 图片对象写入到mstream ???????img.save(mstream, "GIF") ???????# self.session["CheckCode"] = code ???????print(mstream.getvalue()) ???????self.write(mstream.getvalue())class MainHandler(tornado.web.RequestHandler): ???def get(self): ???????self.render("index.html",)application = tornado.web.Application([ ???(r"/index", MainHandler), ???#(r"/check_code", CheckCodeHandler), ???(r"/crsf", CrsfHandler),],**settings)if __name__ == "__main__": ???application.listen(5555) ???tornado.ioloop.IOLoop.instance().start()
<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<title>Title</title></head><body><form action="/crsf" method="post"> ?????{% raw xsrf_form_html() %} ???<p><input name="name" value=""></p> ???<p><input name="pwd" value=""></p> ??<p> ??????<input name="valide" value="" placeholder="验证码"> ??????<input type="submit" value="submit" > ??</p></form><script type="text/javascript"> ???????function ChangeCode() { ???????????var code = document.getElementById(‘imgCode‘); ???????????code.src += ‘?‘; ???????} </script></body></html>

 Ajax使用时,本质上就是去获取本地的cookie,携带cookie再来发送请求

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 + ")")); ???}});};

Csrf ?及ajax的csrf 请求

原文地址:http://www.cnblogs.com/caidapeng/p/7991914.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved