使用lusca时客户端未定义CSRF令牌

时间:2019-02-07 17:06:56

标签: node.js vue.js csrf csrf-protection express-session

我在VueJS应用程序的Node层中使用lusca和express-session,并试图防止CSRF攻击。我正在使用以下lusca配置:

import lusca from "lusca";
import config from "../../properties/config.js";

export default function (app) {

    const luscaConfig = {
       csrf: true,
       xssProtection: config.get("security:xss:enabled")
    };

    if (config.get("security:csp:enabled")) {
        luscaConfig.csp = {
            policy: config.get("security:csp:policy")
        };
    }

    if (config.get("security:xframe:enabled")) {
        luscaConfig.xframe = config.get("security:xframe:origin");
    } 

    if (config.get("security:p3p:enabled")) {
        luscaConfig.p3p = config.get("security:p3p:policy");
    }

    app.use(lusca(luscaConfig));
};

有了这个,我能够在与API交互(登录)的Web客户端中执行的第一个操作中看到以下错误:

enter image description here

很酷,所以在某种程度上看起来lusca配置正在完成它的工作,现在我只需要在客户端做正确的事情,以确保在传出请求的标头中正确设置了CSRF令牌。我发现this post似乎对我的事业有所帮助,特别是abusalameh用户提供的答案。在我要实例化应用程序本身的Vue应用程序的main.js文件中,添加了以下内容:

import axios from 'axios'

window.axios = axios
console.log(document.querySelector('meta[name="csrf-token"]'))

但是,null正在注销,并且似乎未检测到CSRF令牌。如何访问lusca提供的CSRF令牌,然后能够在标头中设置它,并确保正确识别我的请求,但不能识别恶意代理的请求?

0 个答案:

没有答案