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

    如此完美解决了该问题
  • 相关阅读:
    CSS3旋转动画
    CSS3的动画属性
    CSS选择器
    JS事件委托
    js 轮播图效果
    JS事件冒泡和事件捕获
    JS自定义播放器
    js闭包for循环只执行最后一个值得解决方法
    交通红绿灯
    汉明距
  • 原文地址:https://www.cnblogs.com/zhangtq/p/9759061.html
Copyright © 2011-2022 走看看