我在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客户端中执行的第一个操作中看到以下错误:
很酷,所以在某种程度上看起来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令牌,然后能够在标头中设置它,并确保正确识别我的请求,但不能识别恶意代理的请求?