csrf

Django 缓存,中间件,CSRF防护

我的未来我决定 提交于 2020-01-20 21:26:59
目录 文章目录 目录 缓存 什么是缓存? 为什么使用缓存? 使用缓存场景: Django中设置缓存 Django中使用缓存 浏览器中的缓存 强缓存 协商缓存 中间件 Middleware 跨站请求伪造保护 CSRF 缓存 什么是缓存? 缓存是一类可以更快的读取数据的介质统称,也指其它可以加快数据读取的存储方式。一般用来存储临时数据,常用介质的是读取速度很快的内存 为什么使用缓存? 视图渲染有一定成本,对于低频变动的页面可以考虑使用缓存技术,减少实际渲染次数 案例分析 from django . shortcuts import render def index ( request ) : # 时间复杂度极高的渲染 book_list = Book . objects . all ( ) #-> 此处假设耗时2s return render ( request , 'index.html' , locals ( ) ) 优化思想 given a URL , try finding that page in the cache if the page is in the cache : return the cached page else : generate the page save the generated page in the cache ( for next time

CSRF漏洞

放肆的年华 提交于 2020-01-20 16:59:05
回顾一下CSRF漏洞的挖掘方式 https://docs.ioin.in/writeup/www.ohlinge.cn/_web_web_csrf_html/index.html 来源: https://www.cnblogs.com/ahacker15/p/12218254.html

Web安全之CSRF

怎甘沉沦 提交于 2020-01-20 16:55:35
CSRF 一.什么是CSRF 1.CSRF:Cross-site request forgery 跨站请求伪造 2.CSRF可以实施的前提: (1)CSRF利用站点对用户浏览器的信任 (2)被攻击网站依赖用户的身份认证 (3)网站信任已经验证过的用户 (4)攻击者使得用户的浏览器发送HTTP请求到目标网站 注意:攻击者利用的是浏览器会主动带上cookie这一原理,并没有从用户的磁盘下直接盗取用户的cookie。所有的动作都是浏览器主动完成的。 浏览器给哪个网站发出请求,不会在意是从哪个网站发出的,只在意发送到哪个网站 二.攻击过程 1.攻击原理: (1).用户浏览器首先登陆了bank.com,bank.com生成了cookie并保留在用户浏览器Victim.Brower中。 (2).用户被欺骗,访问了attacker.com (3).attacker网站中隐藏了一个表单,并用js进行自动表单请求,用户浏览器会自动执行这个操作。 攻击者伪造了本应由用户自己主动发出的行为。 (4).之后用户浏览器再访问bank.com,会自动带上cookie。 (5).之后bank.com响应这个请求,攻击完成。 2.在zoobar网站上进行攻击的实现 所谓实现CSRF攻击,就是比如用户的正常界面是A,在这个A上存在提交的表单或者需要和服务器交互的什么东东

20170813-CSRF 跨站请求伪造

孤街浪徒 提交于 2020-01-19 20:34:21
CSRF CSRF是Cross Site Request Forgery的缩写,翻译过来就是跨站请求伪造。 跨站:顾名思义,就是从一个网站到另一个网站。 请求:即HTTP请求。 伪造:在这里可以理解为仿造、伪装。 综合起来的意思就是:从一个网站A中发起一个到网站B的请求,而这个请求是经过了伪装的,伪装操作达到的目的就是让请求看起来像是从网站B中发起的,也就是说,让B网站所在的服务器端误以为该请求是从自己网站发起的,而不是从A网站发起的。 CSRF 攻击是黑客借助受害者的 cookie 骗取服务器的信任,但是黑客并不能拿到 cookie,也看不到 cookie 的内容。另外,对于服务器返回的结果,由于浏览器同源策略的限制,黑客也无法进行解析。因此,黑客无法从返回的结果中得到任何东西,他所能做的就是给服务器发送请求,以执行请求中所描述的命令,在服务器端直接改变数据的值,而非窃取服务器中的数据。所以,我们要保护的对象是那些可以直接产生数据改变的服务,而对于读取数据的服务,则不需要进行 CSRF 的保护。 原理 图片来源: CSRF攻击原理以及nodejs的实现和防御  从上图可以看出,要伪装成从A网站发起请求,必须依次完成两个步骤:   1.登录受信任网站A,并在本地生成Cookie。   2.在不登出A的情况下,访问危险网站B。    之所以要伪装成从A网站发起

Iframe causes Can't Verify CSRF Token Authenticity n Rails

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-19 06:21:54
问题 I have a webapp that is loaded through an iframe using phonegap 2.3.0 for Windows Phone 8 SDK. The problem with loading it through the iframe is that it causes Can't verify CSRF token authencity on the Rails side when I send a $.post() request. I tried a couple of approaches such as overwrite the $.post() to use $.ajax() to setHeaderRequest with the token, and also $.ajaxSetup() When I disable protect_from_forgery or verify_authenticity_token , the app loads correctly. I believe the problem

Iframe causes Can't Verify CSRF Token Authenticity n Rails

只谈情不闲聊 提交于 2020-01-19 06:20:26
问题 I have a webapp that is loaded through an iframe using phonegap 2.3.0 for Windows Phone 8 SDK. The problem with loading it through the iframe is that it causes Can't verify CSRF token authencity on the Rails side when I send a $.post() request. I tried a couple of approaches such as overwrite the $.post() to use $.ajax() to setHeaderRequest with the token, and also $.ajaxSetup() When I disable protect_from_forgery or verify_authenticity_token , the app loads correctly. I believe the problem

Iframe causes Can't Verify CSRF Token Authenticity n Rails

丶灬走出姿态 提交于 2020-01-19 06:19:45
问题 I have a webapp that is loaded through an iframe using phonegap 2.3.0 for Windows Phone 8 SDK. The problem with loading it through the iframe is that it causes Can't verify CSRF token authencity on the Rails side when I send a $.post() request. I tried a couple of approaches such as overwrite the $.post() to use $.ajax() to setHeaderRequest with the token, and also $.ajaxSetup() When I disable protect_from_forgery or verify_authenticity_token , the app loads correctly. I believe the problem

spring security之web应用安全

我只是一个虾纸丫 提交于 2020-01-17 19:46:04
一、什么是web应用安全,为了安全我们要做哪些事情? 保护web资源不受侵害(资源:用户信息、用户财产、web数据信息等) 对访问者的认证、授权,指定的用户才可以访问资源 访问者的信息及操作得到保护(xss csrf sql注入等) 开发中我们需要注意的项: 1. 【高危】网络关键数据传输加密 1. 【高危】站点使用https方式部署 2. 【高危】文件传输时,过滤与业务无关的文件类型 3. 【高危】接口开发,应预防泄露敏感数据 4. 【高危】预防url中带url跳转参数 5. 【中危】预防CSRF攻击 6. 【中危】预防短信恶意重发 7. 【中危】预防暴力破解图片验证码 8. 【低危】通过httponly预防xss盗取cookie信息 9. 【低危】设置http协议安全的报文头属性 ...... 二、为什么要聊spring security? spring security在很多安全防护上很容易实现 理解spring security的抽象有助于养成面向对象思维 可以为理解spring security oauth2做铺垫 三、先搞清楚两大概念:认证、授权 Application security boils down to two more or less independent problems: authentication (who are you?) and

csrf学习笔记

你离开我真会死。 提交于 2020-01-17 16:30:48
  CSRF全称Cross Site Request Forgery,即跨站点请求伪造。我们知道,攻击时常常伴随着各种各样的请求,而攻击的发生也是由各种请求造成的。   CSRF攻击能够达到的目的是使受害者发出由攻击者伪造的请求。       CSRF能做的事情大概如下:   1)篡改目标网站上的用户数据;       2)盗取用户隐私数据;   3)作为其他攻击向量的辅助攻击手法;   4)传播CSRF蠕虫。    (1)版本4.2.100: 在phpok该版本的后台提交如下POST请求可以添加管理员: 1 POST /phpok/admin.php?c=admin&f=save HTTP/1.1 2 Host: www.goal.com 3 … 4 Cookie: … 5 (空一行) 6 id=…&accont=…&pass=…&status=…&if_system=… 由以上http头部可看出,此为添加管理员的请求,只有管理员能够执行。 攻击者可以构造如下页面: 1 <html> 2 <div style="display:none"> 3 <form action="http://localhost/phpok/admin.php?c=admin&f=save" id="poc" name="poc" method="post"> 4 <input type="hidden

谨慎能捕千秋蝉(二)——CSRF

我怕爱的太早我们不能终老 提交于 2020-01-17 16:28:20
CSRF(Cross Site Request Forgery)跨站点请求伪造。 CSRF的本质是当重要操作的参数都能被攻击者预测到,才能成功伪造请求。 一、场景演示 下图是一个伪造请求的场景,按顺序来看; 1、2是正常登陆并产生Cookie,3、4是在登陆后访问骇客的网站并发请求,5是服务器执行骇客发出的请求。 这个场景的关键就是带上Cookie伪造请求。 1)浏览器中的Cookie 浏览器有“Session Cookie”(临时Cookie)和“Third-party Cookie”(本地Cookie); 前者浏览器关闭后就失效了,后者指定了Expire时间,只有超过了时间才会失效。 默认会拦截“Third-party Cookie”的有IE6、IE7、IE8、Safari; 不会拦截的有Firefox、Opera、Chrome等,我就验证了Firefox、Chrome、以及IE8。 2)验证浏览器的支持 设计两个域名“www.normal.net”(正常的网站)和“www.csrf.net”(伪造的网站) 1. 访问“ www.normal.net/cookie.php ”页面,在cookie.php中设置Cookie,用PHP代码实现。 <?php setcookie("cookie1",'session'); setcookie("cookie2",'third'