CSRF-токен не определен на стороне клиента при использовании lusca - PullRequest
0 голосов
/ 07 февраля 2019

Я использую lusca и экспресс-сессию на уровне узлов приложения VueJS и пытаюсь предотвратить атаки 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 (вход в систему):

enter image description here

Круто, похоже, что в некоторой степени конфигурация lusca делает свое дело, теперь мне просто нужно сделать правильную вещь вна стороне клиента, чтобы убедиться, что токен CSRF правильно установлен в заголовках исходящих запросов.Я видел, что этот пост выглядел полезным для моего дела, особенно ответа, предоставленного пользователем abusalameh.В файле main.js моего приложения Vue, где я создаю экземпляр самого приложения, я добавил следующее:

import axios from 'axios'

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

Однако null выходит из системы, и кажется, что токен CSRF небыть обнаруженным.Как я могу получить доступ к токену CSRF, предоставленному lusca, чтобы затем установить его в заголовках и убедиться, что мои запросы правильно распознаются, но не запросы злонамеренных агентов?

...