Ajax -CSRF

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/login" method="post">
  <!--{% raw xsrf_form_html() %}-->
  <input type="text" name="message"/>
  <input type="submit" value="Post"/>
</form>
    <input type="button" value="Ajax CSRF" onclick="SubmitCsrf();"/>
    <script src="jquery-3.1.1.js"></script>
<script>
    function getCookie(name) {
    var r = document.cookie.match("\\b" + name + "=([^;]*)\\b");
    return r ? r[1] : undefined;
}
    function SubmitCsrf() {
        var nid = getCookie(‘_xsrf‘);
        $.post({
            url:‘/csrf‘,
            data:{‘k1‘:‘v1‘,‘_xsrf‘:nid},
            success:function (callback) {
                console.log(callback);
            }
        })
    }
</script>
</body>
</html>
 1 #!/usr/bin/env python
 2 import tornado.ioloop
 3 import tornado.web
 4 class MainHandler(tornado.web.RequestHandler):
 5     def get(self, *args, **kwargs):
 6         self.render(‘login.html‘)
 7     def post(self, *args, **kwargs):
 8         self.render(‘login.html‘)
 9 class LoginHandler(tornado.web.RequestHandler):
10     def get(self, *args, **kwargs):
11         self.render(‘login.html‘)
12     def post(self, *args, **kwargs):
13         self.render(‘login.html‘)
14 settings = {
15     "xsrf_cookies": True,
16 }
17 application = tornado.web.Application([
18     (r"/", MainHandler),
19     (r"/login", LoginHandler),
20 ], **settings)
21 if __name__ == ‘__main__‘:
22     application.listen(8888)
23     tornado.ioloop.IOLoop.instance().start()
时间: 2024-10-26 02:39:21

Ajax -CSRF的相关文章

python学习-- Django Ajax CSRF 认证

使用 jQuery 的 ajax 或者 post 之前 加入这个 js 代码:http://www.ziqiangxuetang.com/media/django/csrf.js /*====================django ajax ======*/ jQuery(document).ajaxSend(function(event, xhr, settings) { function getCookie(name) { var cookieValue = null; if (doc

Django:之传递数据给JS、Ajax和Ajax CSRF认证

Django传递数据给JS 有时候我们想把一个list或者dict传递给javascript,处理后显示到网页上,比如要用js进行可视化到数据. 请注意:如果是不处理,直接显示在网页上,用Django模版就可以了,请看前面的教程. 这里讲述两种方法: 一.页面加载完成后,在页面上操作,在页面上通过ajax方法得到新的数据(再向服务器发送一次请求)并显示在网页上,在这种情况适用于页面不刷新的情况下,动态加载一些内容.比如用户输入一个值或者点击某个地方,动态地把相应内容显示在网页上. 这种请详见下面

Ajax csrf跨站请求伪造

方式一: ///仅限js代码在HTML内//// $.ajaxSetup({ data: {csrfmiddlewaretoken: '{{ csrf_token }}' }, }); 方式二: ///放在data内//// $('.btn').click(function () { $.ajax({ url:'/sum2/', type:"POST", data:({ csrfmiddlewaretoken:$("[name='csrfmiddlewaretoken']&q

django 用jquery ajax提交form 实现刷新部分页面

首先要引入jquery文件,可以引入在线的,也可以下载离线的 添加进自己staticfiles 这里演示的是添加离线的 <script src={% static 'jquery/jquery.min.js' %}></script> 注意这句是要添加到自己写的jquery脚本前边 然后写一个简单的表单 <form method="post" id="formadd"> {% csrf_token %} <label for

CSRF 跨站

目录 CSRF 跨站请求伪造 解决跨站伪造问题: csrf 相关的装饰器: csrf.js文件: CSRF 跨站请求伪造 CSRF全称为Cross-site request forgery,也被称为:one click attack/session riding,缩写为:CSRF/XSRF. CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求.CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全

Django对中间件的调用思想、csrf中间件详细介绍、Django settings源码剖析、Django的Auth模块

目录 使用Django对中间件的调用思想完成自己的功能 功能要求 importlib模块介绍 功能的实现 csrf中间件详细介绍 跨站请求伪造 Django csrf中间件 form表单 ajax csrf相关装饰器 在CBV上加csrf装饰器 Django settings源码剖析及模仿使用 Django settings源码剖析 查看内部配置文件 模仿使用 Auth模块 auth简介 auth模块常用方法 创建用户 校验用户名和密码 保存用户登录状态 判断当前用户是否登录 校验原密码 修改密

web框架--XSS攻击和CSRF请求伪造

XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的特殊目的. tornado中已经为我们给屏蔽了XSS,但是当我们后端向前端写前端代码的时候传入浏览器是字符串,而不是形成代码格式.所以就需要一个反解,在传入模板语言中前面加一个ra

前端安全须知

一.网络安全 机密性(加密).完整性(防伪造).来源可靠性(签名) 程序漏洞 二.web前端安全 XSS:Cross Site Script(跨站攻击脚本) 往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行. XSS的种类: 1.XSS-基于DOM的XSS 产生原因:当web page含有一些不受服务器端控制的DOM的时候发生,通过form.referer.location修改页面DOM. 解决方法:避免客户端的脚本对DOM的重写.重定向及其它敏感

Django相关

1. django视图函数处理URL的两种方式  FBV CBV FBV :  一个url对应一个函数去处理. CBV :  一个url对应一个类去处理. 先贴出 views的写法: # FBVdef fbv(request): return HttpResponse('FBV') # CBV from django.views import View class CBV(View): def dispatch(self, request, *args, **kwargs): print('扩展