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
    })、

    如此完美解决了该问题
  • 相关阅读:
    php函数
    php循环语句(二)
    php循环语句(一)
    php魔术常量
    php超级全局变量
    php数组函数
    php数组
    php条件语句(二)
    php条件语句(一)
    shell 中的判断
  • 原文地址:https://www.cnblogs.com/zhangtq/p/9759061.html
Copyright © 2011-2022 走看看