作用: 防止其他人使用本站的静态资源
- 在请求头的referer记录请求静态资源的网址,需要比对referer中的值,制作可以访问静态资源的白名单
req.get('referer') // 获取请求头中referer的值
import express, { json } from "express";
const app = express();
// 静态资源访问的白名单
const httpList = ["localhost"];
const placeStolenLinks = (req, res, next) => {
// referer:请求来源
const referer = req.get("referer");
// 判断请求来源是否为 httpList中的地址
if (referer) {
const url = new URL(referer);
const hostname = url.hostname;// 从referer中解析出主机名
if (!httpList.includes(hostname)) {
return res.status(403).send("非法请求");
}
}
next();
};
app.use(placeStolenLinks);
// 设置静态资源访问的文件夹
app.use(express.static("public"));
app.listen(3000, () => {
console.log("Server is running on port 3000");
});