基础概念: 防盗链是指防止其他网站通过链接直接访问本网站的资源(如图片、视频、文件等),从而保护网站资源不被非法使用或盗取。
相关优势:
类型:
应用场景:
常见问题及解决方法:
问题1:为什么我的防盗链设置无效?
问题2:如何实现基于Referer的防盗链?
const express = require('express');
const app = express();
app.get('/image.jpg', (req, res) => {
const referer = req.headers.referer;
if (referer && referer.startsWith('https://yourdomain.com')) {
res.sendFile(__dirname + '/image.jpg');
} else {
res.status(403).send('Forbidden');
}
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});问题3:如何使用时间戳验证防盗链?
const express = require('express');
const crypto = require('crypto');
const app = express();
const secretKey = 'your_secret_key';
app.get('/video.mp4', (req, res) => {
const timestamp = req.query.ts;
const signature = req.query.sig;
const calculatedSignature = crypto.createHmac('sha256', secretKey)
.update(timestamp)
.digest('hex');
if (signature === calculatedSignature && Date.now() - timestamp < 60000) { // 1 minute validity
res.sendFile(__dirname + '/video.mp4');
} else {
res.status(403).send('Forbidden');
}
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});通过以上方法,可以有效实现JS防盗链,保护网站资源不被非法使用。
没有搜到相关的文章