如何使用nodejs和express来阻止人们在应用上链接图像?我在我自己的服务器上托管。这是我需要构建到app.js文件中的东西吗?感谢。
答案 0 :(得分:1)
您需要编写中间件才能接受来自您网站的某些有效参考。一定要接受现代搜索引擎,社交媒体网站,也不要接受任何引用。
答案 1 :(得分:0)
答案 2 :(得分:0)
创建一个中间件来检查HTTP请求标头中的Referer,其中包含流行的搜索引擎,媒体和网站的域。
将此添加到您的app.js文件中。假设您使用的是Express 4.x。
app.use('/', (req , res , next) => {
const referrer = req.get('Referrer');
if (referrer == null) {
next(); // referrer is an optional http header, it may not exist
}
if (["https://www.facebook.com", "https://www.google.com"].includes(referrer)) { // compare referrer with your whitelist
res.status(403).send("You are not allowed to view this photo!"); // block the request
}
next();
});
app.get('/',(req,res)=>{
res.sendFile(`PATH_OF_YOUR_IMAGE`);
});
了解有关Referer HTTP标头的更多信息
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer