凡科建站代理平台,风格活泼的网站设计,商务网站开发工具,二手交易平台的网站怎么做防盗链#xff08;Hotlinking#xff09;是指在网页或其他网络资源中#xff0c;通过直接链接到其他网站上的图片、视频或其他媒体文件#xff0c;从而显示在自己的网页上。这种行为通常会给被链接的网站带来额外的带宽消耗和资源浪费#xff0c;而且可能侵犯了原始网站的…防盗链Hotlinking是指在网页或其他网络资源中通过直接链接到其他网站上的图片、视频或其他媒体文件从而显示在自己的网页上。这种行为通常会给被链接的网站带来额外的带宽消耗和资源浪费而且可能侵犯了原始网站的版权。
为了防止盗链网站管理员可以采取一些措施
通过HTTP引用检查网站可以检查HTTP请求的来源如果来源网址与合法的来源不匹配就拒绝提供资源。这可以通过服务器配置文件或特定的脚本实现。使用Referrer检查网站可以检查HTTP请求中的Referrer字段该字段指示了请求资源的来源页面。如果Referrer字段不符合预期就拒绝提供资源。这种方法可以在服务器配置文件或脚本中实现。使用访问控制列表ACL网站管理员可以配置服务器的访问控制列表只允许特定的域名或IP地址访问资源其他来源的请求将被拒绝。使用防盗链插件或脚本一些网站平台和内容管理系统提供了专门的插件或脚本来防止盗链。这些工具可以根据需要配置阻止来自未经授权的网站的盗链请求。使用水印技术在图片或视频上添加水印可以帮助识别盗链行为并提醒用户资源的来源。
编码
第一步需要初始化静态资源目录 express.static
import express from expressconst app express()//自定义前缀 初始化目录
app.use(/assets,express.static(static))app.listen(3000,(){console.log(listening on port 3000)
})增加防盗链
防盗链一般主要就是验证host 或者 referer
import express from express;const app express();const whitelist [localhost];// 防止热链中间件
const preventHotLinking (req, res, next) {const referer req.get(referer); // 获取请求头部中的 referer 字段if (referer) {const { hostname } new URL(referer); // 从 referer 中解析主机名if (!whitelist.includes(hostname)) { // 检查主机名是否在白名单中res.status(403).send(Forbidden); // 如果不在白名单中返回 403 Forbiddenreturn;}}next(); // 如果在白名单中继续处理下一个中间件或路由
};app.use(preventHotLinking); // 应用防止热链中间件
app.use(/assets, express.static(static)); // 处理静态资源请求app.listen(3000, () {console.log(Listening on port 3000); // 启动服务器监听端口3000
});127.0.0.1 无权限 localhost 有权限