• 跨站请求伪造和csrf_token使用


    day70

     csrf简单用法
     
        什么是CSRF ?
            跨站请求伪造,
            
            
        问题:
            1. 钓鱼网站的页面和正经网站的页面对浏览器来说有什么区别? (页面是怎么来的?)
                钓鱼网站的页面是由 钓鱼网站的服务端给你返回的
                
                正经网站的网页是由 正经网站的服务端给你返回的
                
                
            2. Django中内置了一个专门处理csrf问题的中间件
                django.middleware.csrf.CsrfViewMiddleware
                
                这个中间件做的事情:
                    1. 在render返回页面的时候,在页面中塞了一个隐藏的input标签
                    
                    用法:
                        我们在页面上 form表单 里面 写上 {% csrf_token %}
                        
                    <input type="hidden" name="csrfmiddlewaretoken" value="8gthvLKulM7pqulNl2q3u46v1oEbKG7BSwg6qsHBv4zf0zj0UcbQmpbAdijqyhfE">
                    
                    2. 当你提交POST数据的时候,它帮你做校验,如果校验不通过就拒绝这次请求

    详细过程:

    提交后后台得到数据:

    通过钓鱼网站,将钱转给指定的人

    结果:

    写的是转入小黑,结果却是转给了哪吒。

    解决方法:

    在表单中嵌入 {% csrf_token %},且在setting.py中 'django.middleware.csrf.CsrfViewMiddleware',取消注释。

    前端表单中{% csrf_token %}将和后端中内容进行比较验证,如果对应则提交成功,而钓鱼网站。

    拒绝钓鱼网站:

  • 相关阅读:
    bzoj4753: [Jsoi2016]最佳团体(分数规划+树形依赖背包)
    bzoj2956: 模积和(数论)
    51nod 1766 树上的最远点对(线段树)
    bzoj2621: [Usaco2012 Mar]Cows in a Skyscraper(状压DP)
    Codeforces Round #441 Div. 2题解
    bzoj4569: [Scoi2016]萌萌哒(ST表+并查集)
    iOS和Android后台机制对比
    UIApplicationDelegate 各方法回调时机
    iOS OC和JS的交互 javaScriptCore方法封装
    iOS应用的执行原理
  • 原文地址:https://www.cnblogs.com/112358nizhipeng/p/10491386.html
Copyright © 2020-2023  润新知