# 注: 部分内容参考网上,侵删  

   

  

  CSRF(Cross-site request forgery) 跨站请求伪造,是一种对网站的恶意利用  它会通过伪装成受信任用户的请求来利用受信任的网站来获取一些信息。

举个小栗子来解释原理(故事纯属虚构):

    A用户在某个银行有一笔不小的存款,A用户可以通过该银行的网站来进行存款和提现等请求,当请求发送到网站后,服务器会先验证该请求是否来自一个合法的 session,并且保存。 当黑客B发现了该目标用户A之后,黑客B便在该银行网站注册账户。黑客B可以通过A用户的某个URL来进行转账。但是,该URL的请求来自黑客B但并非来自用户A,所以无法通过验证。   这时,黑客B便可以自己创建一个网站,该网站的部分请求中会有A用户的转账的URL,黑客B的网站里面有许多诱人的东西,来诱惑用户A来访问该网站。  如果用户A刚刚在该银行网站上进行过转账等操作,便被黑客B的网站诱惑到,以至于来访问该黑客网站,这个时候用户A的浏览器与银行网站之间的 session 尚未过期,浏览器的 cookie 之中含有 用户A 的认证信息。这时,悲剧发生了,这个 url 请求就会得到响应,钱将从 用户A 的账号转移到 黑客B的账号,而 用户A 当时毫不知情,还在很开心的访问着黑客B的黑网站。

CSRF攻击之所以能够成功,是因为黑客可以伪造用户的请求,请求的信息都是存在cookie或session中的。 要想抵御CSRF,关键在于在一些重要请求中放入一些黑客不能伪造的信息。

抵御CSRF有三种方法:

  1.验证码

  2.refer头

  3.Token

我们便来说说第三中方法Csrf_token

  Token就是一个令牌,他是一个随机的值,Token最大的特点就是随机性,不可预测

他可以在请求的时候随机产生一个令牌,并在服务器上建立一个拦截器来验证该令牌,如果两者不匹配或者没存在令牌,便会拒绝该请求。

注意当然不能写到cookie中,因为浏览器在发出恶意csrf请求时,是自动带着你的cookie的

运用的时候在form表单中需要加上   

并且在用的时候也需要获取一下该token

温馨提示:

  在生活中,一定要注意网上的一些垃圾信息,和一些不健康网站。在我们刚刚在某网站转账完毕或者登陆完毕之后,就不要去访问内些垃圾网站,防止我们的信息被盗取。

Csrf_token ||| CSRF跨站请求伪造的更多相关文章

  1. python CSRF跨站请求伪造

    python CSRF跨站请求伪造 <!DOCTYPE html> <html lang="en"> <head> <meta chars ...

  2. Django之CSRF跨站请求伪造(老掉牙的钓鱼网站模拟)

    首先这是一个测试的代码 请先在setting页面进行下面操作 注释完成后,开始模拟钓鱼网站的跨站请求伪造操作: 前端代码: <!DOCTYPE html> <html lang=&q ...

  3. ajax向Django前后端提交请求和CSRF跨站请求伪造

    1.ajax登录示例 urls.py from django.conf.urls import url from django.contrib import admin from app01 impo ...

  4. python 全栈开发,Day87(ajax登录示例,CSRF跨站请求伪造,Django的中间件,自定义分页)

    一.ajax登录示例 新建项目login_ajax 修改urls.py,增加路径 from app01 import views urlpatterns = [ path('admin/', admi ...

  5. 第三百一十五节,Django框架,CSRF跨站请求伪造

    第三百一十五节,Django框架,CSRF跨站请求伪造  全局CSRF 如果要启用防止CSRF跨站请求伪造,就需要在中间件开启CSRF #中间件 MIDDLEWARE = [ 'django.midd ...

  6. Django中的CSRF(跨站请求伪造)

    Django中的CSRF(跨站请求伪造) Django CSRF  什么是CSFR 即跨站请求伪装,就是通常所说的钓鱼网站. 钓鱼网站的页面和正经网站的页面对浏览器来说有什么区别? (页面是怎么来的? ...

  7. Django框架 之 基于Ajax中csrf跨站请求伪造

    Django框架 之 基于Ajax中csrf跨站请求伪造 ajax中csrf跨站请求伪造 方式一 1 2 3 $.ajaxSetup({     data: {csrfmiddlewaretoken: ...

  8. 十三 Django框架,CSRF跨站请求伪造

     全局CSRF 如果要启用防止CSRF跨站请求伪造,就需要在中间件开启CSRF #中间件 MIDDLEWARE = [ 'django.middleware.security.SecurityMidd ...

  9. Web框架之Django_09 重要组件(Django中间件、csrf跨站请求伪造)

    摘要 Django中间件 csrf跨站请求伪造 一.Django中间件: 什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于 ...

随机推荐

  1. BUAA_OO第二单元作业总结——多线程

    OO第二单元作业总结——多线程 单元任务 本单元主要的内容是通过模拟电梯的运行来熟悉多线程的实现,从简单的单部FAFS电梯开始,ALS电梯,到最后的多部ALS电梯. 一.设计策略分析总结 1.1 多线 ...

  2. git设置用户名和邮箱

    用git config --global user.name "your name"命令来设置你的用户名 用git config --global user.email " ...

  3. Android中控件之间添加分割线

    将以下view标签放置在需要分割的两个控件之间: <View android:layout_width=”match_parent” android:layout_height=”1dp” an ...

  4. jqGrid选择列控件向右拖拽超出边界处理

    jqGrid选择列控件向右拖拽超出边界处理 $("#tb_DeviceInfo").jqGrid('navButtonAdd', '#jqGridPager', {         ...

  5. CentOS7系统系统检查脚本

    #!/bin/bash ############################################################## # File Name: .sh # Versio ...

  6. leetcode71

    这道题很简单,大约是词法分析器差不多的原理.但是我觉得看了别人简洁的代码后还是很有收获的.本人的冗余代码就不好意思放上来了,以下是别人的参考代码和值得借鉴的地方: class Solution { p ...

  7. 在.net core web项目中生成二维码

    1.添加QRCoder包引用 2. public IActionResult MakeQrCode()        { string url="https://www.baidu.com& ...

  8. fiddler 4 设置代理

    Windows使用一种被称为“AppContainer”的隔离技术,它可能会干扰lmmersive应用程序和Edge浏览器的流量捕捉.使用进度Telerik Fiddler的工具栏上的WinConfi ...

  9. 数据库SQL优化大总结1之- 百万级数据库优化方案

    转载自:https://blog.csdn.net/wuhuagu_wuhuaguo/article/details/72875054

  10. flask基础--第二篇

    1.Flask中的HTTPResponse,Redirect, render #导入render_template和redirect from flask import Flask,render_te ...