• home > webfront > server > koa >

    koa网站安全之koa2-cors:指定请求域名\方法

    Author:zhoulujun Date:

    koa网站后台没有nginx代理,nodejs裸奔,如何限制请求方法,设置域名白名单?


    CORS是一个W3C标准,全称是"跨域资源共享":具体参看:《前端安全配置xss预防针Content-Security-Policy(csp)配置详解》 

    网站设置白名单:

    const cors = require('koa2-cors');
    //全部允许跨域
    app.use(cors()); 
    // 设置多个域名可跨域    
    app.use(
        cors({
            origin: function(ctx) { //设置允许来自指定域名请求
                const whiteList = ['http://weipxiu.com','http://localhost:8081']; //可跨域白名单
                let url = ctx.header.referer.substr(0,ctx.header.referer.length - 1);
                if(whiteList.includes(url)){
                    return url //注意,这里域名末尾不能带/,否则不成功,所以在之前我把/通过substr干掉了
                }
                return 'http://localhost::3000' //默认允许本地请求3000端口可跨域
            },
            maxAge: 5, //指定本次预检请求的有效期,单位为秒。
            credentials: true, //是否允许发送Cookie
            allowMethods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'], //设置所允许的HTTP请求方法
            allowHeaders: ['Content-Type', 'Authorization', 'Accept'], //设置服务器支持的所有头信息字段
            exposeHeaders: ['WWW-Authenticate', 'Server-Authorization'] //设置获取其他自定义字段
        })
    );

    具体参看:https://github.com/zadzbw/koa2-cors





    转载本站文章《koa网站安全之koa2-cors:指定请求域名\方法》,
    请注明出处:https://www.zhoulujun.cn/html/webfront/server/koa/8967.html