分享

app.use() 实现referer请求头 图片防盗链

 融水公子 2023-10-30 发布于福建
表白:黑白圣堂血天使,天剑鬼刀阿修罗。 
讲解对象:
/app.use() 实现referer请求头 图片防盗链
作者:融水公子 rsgz
===

app.use() 实现referer请求头 图片防盗链、

图片防盗链的原理其实就是判断 referer请求头的IP是不是自己的IP  如果不是自己的IP 就相应一个404就可以了


这些是实验的文件路径

E:\1-AI_pro\node_pro\src\18-express\public\002.png
E:\1-AI_pro\node_pro\src\18-express\public\index.html
E:\1-AI_pro\node_pro\src\18-express\16-图片防盗链.js

16-图片防盗链.js作为服务运行http

其中必须注意这个app.use 有两个 需要注意他们的顺序
const express = require('express');

// 创建应用对象
const app = express();

// 这一层 应用全局
app.use((req,res,next)=>{
    // 获取请求头的refer 是否是 127.0.0.1
    let referer=req.get('referer');
    console.log(referer);
    if(referer){
        let url = new URL(referer);  // 链接实例化
        let hostname = url.hostname;
        if(hostname!=='127.0.0.1'){
            res.status(404).send('<h>404</h>')
            return;
        }
    }
    next();
});

// 必须放在 中间件的后面
app.use(express.static(__dirname+'/public'));

// 监听端口
app.listen(9001,()=>{
    console.log("start server!!!");
})

两次访问 分别使用了不同 的方式

这种访问 可以查看图片 http://127.0.0.1:9001/
这种访问 无法访问图片 http://localhost:9001/
=== 
公众号:不浪仙人
谢谢大家的支持!可以点击我的头像,进入我的空间浏览更多文章呢。建议大家360doc[www.360doc.com]注册一个账号登录,里面真的有很多优秀的文章,欢迎大家的到来。
---
';

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多