什么是csrf(跨站请求伪造)

  伪造请求的定义有很多种,我将不是用户本意发出的请求统称为伪造请求(在用户不知情的情况下执行某些操作)xss的通过用户对浏览器的信任造成的,csrf是通过服务器对浏览器的信任造成的

csrf的原理及过程:

  假设有a用户和b网站c网站  c网站为恶意网站

    a用户正常登录b网站,登录成功,b网站返回一个cookie给a用户

    b用户访问c网站,c网站在a用户不知情的情况下要求a的浏览器访问b网站的特点功能,浏览器正常执行

    b网站接到a浏览器的请求,正常执行a用户浏览器的请求

csrf形成的前提:

  与攻击方处于同一浏览器,用户处于登录状态并且用户访问了攻击方的链接

csrf攻击过程:

  当用户执行修改密码操作时候,向网页提交了一个正常的请求
  

  根据这个请求配置一个方式配置一个专门的网页,当访问这个网页的时候,这个网页会发出一个iframe框架请求请求了修改密码请求,将密码修改为123,display是设置框架的隐藏

  

受害者访问过程:
   我们更换用户登录

   

  登录成功:访问网址

    

  退出登录

    

  密码已经被修改成123

csrf的防御:

  1.服务器端验证请求浏览器的Referer参数(该参数表示的是从哪个网页发出的请求)

   

  2.增加随机token 验证

    

  3.Cookie中的http-only属性验证   

csrf跨站点请求伪造的更多相关文章

  1. Python Django框架笔记(四):数据分页和CSRF跨站点请求伪造

    (一)数据分页  可以参考  https://docs.djangoproject.com/en/2.0/topics/pagination/ 模板:如果只要显示 1.2.3.4.5.6....的话, ...

  2. 密码学系列之:csrf跨站点请求伪造

    目录 简介 CSRF的特点 CSRF的历史 CSRF攻击的限制 CSRF攻击的防范 STP技术 Cookie-to-header token Double Submit Cookie SameSite ...

  3. CSRF跨站点请求伪造漏洞问题

    最近在写php,项目写完后送检发现一个漏洞问题CSRF,强行拖了我一天的时间,沉迷解决问题,茶饭不思,日渐消瘦,时间比较赶,这篇比较糙,凑合看下. 好了废话不多说下面是今天的解决方案. 博主用的是Th ...

  4. python---xss(Cross Site Scripting)跨站脚本攻击和csrf(xsrf)跨站点请求伪造(Cross—Site Request Forgery)攻击

    xss跨站脚本攻击:恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的. 例如:某些论坛允许用户自由发言,而 ...

  5. 跨站点请求伪造(CSRF)学习

    一.CSRF介绍 伪造一个站点,在站点中伪造一个向其他站点的请求,在用户访问该站点时让用户执行 假设有如下URL能删除一篇文章: 攻击者在自己的域中构造一个页面: 内容为: 使用一个img标签,其地址 ...

  6. 跨站点请求伪造(CSRF)

    一.前言 跨站点请求伪造(Cross-SiteRequest Forgeries, CSRF),是指攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态更新,属于被动 ...

  7. [不常用] - CSRF(跨站点请求伪造)

    CSRF,Cross Site Request Forgery,即跨站点请求伪造.   这种攻击是指,在用户正常登录系统以后,攻击者诱使用户访问一些非法链接,以执行一些非法操作. 比如:如果删除用户操 ...

  8. Appscan漏洞之跨站点请求伪造(CSRF)

    公司前段时间使用了Fortify扫描项目代码,在修复完这些Fortify漏洞后,最近又启用了Appscan对项目代码进行漏洞扫描,同样也是安排了本人对这些漏洞进行修复.现在,针对修复过的Appscan ...

  9. 跨站点请求伪造 - SpringBoot配置CSRF过滤器

    1. 跨站点请求伪造   风险:可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务.   原因:应用程序使用的认证方法不充分. ...

随机推荐

  1. JS中require函数的警告提示

    在JS中常常使用require函数来引入文件或者路径,不过在使用时需要注意一点,它的参数必须是一串完整的字符串常量或者是由字符常量与变量拼接. (一)require函数的参数为一个变量,如下图所示: ...

  2. C语言二级选择题考点汇总-数据结构与算法-【考点一】 什么是算法

      1.算法及其基本特征 算法是指对方案的准确描述,是解决问题的执行步骤. 算法不等于数学上的计算方法,也不等于程序.程序是算法的载体. 算法的基本特征如下: (1)可行性:步骤可实现,执行结果可达到 ...

  3. 吴裕雄--天生自然 R语言开发学习:模块\包的安装命令

    install.packages('模块包名称') 或者 install.packages('模块包名称',repos='http://cran.us.r-project.org')

  4. demo Django-基础书籍添加删除(单表)

    小demo使用---- 1.pycharm-2019.2 2.python-3.7.2 3.mysql-5.7.25 4.django-2.2.4 使用过程中的一些注意事项和出现的常见错误的解决地址 ...

  5. linux查看硬件、系统信息

    查看机器型号等 dmidecode 是一个读取电脑 DMI(桌面管理接口(Desktop Management Interface))表内容并且以人类可读的格式显示系统硬件信息的工具.这个表包含系统硬 ...

  6. PAT (Advanced Level) Practice 1055 The World's Richest (25 分) (结构体排序)

    Forbes magazine publishes every year its list of billionaires based on the annual ranking of the wor ...

  7. mp3格式音频 不能立即播放

    原因是mp3的meta信息在mp3文件后面,所以要都加载完才能播放 而m4a 格式的 可以立即播放

  8. SpringData JPA快速入门和基本的CRUD操作以及Specifications条件查询

    SpringData JPA概述: SpringData JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作 ...

  9. 机器学习作业(三)多类别分类与神经网络——Python(numpy)实现

    题目太长了!下载地址[传送门] 第1题 简述:识别图片上的数字. import numpy as np import scipy.io as scio import matplotlib.pyplot ...

  10. 解决SourceTree每次拉取提交都需要输入密码的问题

    打开终端并且输入: git config --global credential.helper osxkeychain 第一次需要输入密码,以后都不需要了