zoukankan      html  css  js  c++  java
  • vue+django的csrf攻击问题解决思路

    问题起因:由于本项目是前后端分离,所以在原本的django里使用template解决csrf问题是不现实的

    解决过程:

    1.在django的view里设置request的cookie,让他带csrftoke。

    2.修改前端的代码,获取cooke和请求头里的token值做比较。

    实现的代码如下:

    后台view:

    @require_http_methods(['GET',"POST"])
    def register_or_login(request):
    print request
    request.META["CSRF_COOKIE_USED"] = True
    get_token(request)
    uf = UserForm(request.POST)
    print request.POST
       ......
    前端代码如下:
    methods: {
    back () {
    this.$router.back(-1)
    },
    getCookie (name) {
    var value = '; ' + document.cookie
    var parts = value.split('; ' + name + '=')
    if (parts.length === 2) return parts.pop().split(';').shift()
    },
    post里增加请求头内容
    this.axios({
    method: 'post',
    url: this.linkPrefix + '/users_api/register_or_login',
    headers: {'X-CSRFToken': this.getCookie('csrftoken')},
    data: postData
    })、

    如此完美解决了该问题
  • 相关阅读:
    shell预备知识
    php session和cookie
    php数据库访问抽象层PDO
    递归求斐波那契数
    SqlDataReader的使用
    DataAdapter与DataSet的使用
    CLR
    Android Studio javadoc 生成注释文档
    MySQL教程之concat以及group_concat的用法
    一文读懂MQTT协议
  • 原文地址:https://www.cnblogs.com/zhangtq/p/9759061.html
Copyright © 2011-2022 走看看