什么是防盗连
一个简单的说明,假如在前端img标签想要引用图片网站上的图片,当你将图片地址放到img标签上想要显示的时候你发现,图片显示不了,这说明网站采用了防盗链。
怎么实现的呢
在请求头中一般会有 Referer,它会自动携带当前网页的域名、协议、端口发送请求。
那就可以通过这个来进行防盗链设置了
目录结构
html页面
const express = require('express')
const app = express()
app.use((req,res,next)=>{
const referer = req.get('referer')
if(referer){
let url = new URL(referer)
let hostname = url.hostname
if(hostname !=='127.0.0.1'){
console.log('访问失败')
res.status(404).send('sjjjsjs')
return;
}
}
next()
})
// 使用静态中间件
app.use(express.static(__dirname+'/publick'))
app.listen('3000',()=>{
console.log('启动成功');
})
})
通过http://localhost:3000和http://127.0.0.1:3000方式分别访问localhost访问并没有返回图片,而127.0.0.1正常返回了图片。