使用node.js实现图片防盗链

70 阅读1分钟

1 .通过请求图片请求头头中的Referee和host字段不一致判断

通过自己封装一个中间件来实现

module.exports = (req, res, next) => {
    const host = req.headers.host; // 获取本网站的主机名
    let referer = req.headers.referer;
    // 只处理图片
    const extname = path.extname(req.path);
    if(!['.jpg', 'png'].includes(extname)) {
        next();
        return;
    }
    if(referer) {
        referer = url.parse(referer).host;
    }
    if(referer && referer !== host) {
    // 返回404 或者返回一个默认图片
        res.status(404).end();
        
        return;
        req.url = '';
        next();
    }
    next();
}