NodeJs 第十九章 防盗链

2024-01-22 18:04

本文主要是介绍NodeJs 第十九章 防盗链,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

防盗链(Hotlinking) 指的是一种网站技术,用于阻止其他网站直接链接到自己的资源(如图片、音频、视频等),而是强制让访问者访问资源所在网站。防盗链的目的是保护资源的安全性和减少带宽消耗。

防盗链可以通过设置服务器的HTTP头部信息来实现。服务器可以检查请求来源的HTTP头部中的Referrer字段,如果该字段为空或与自己的域名不匹配,服务器可以拒绝提供资源。

防盗链有助于防止其他网站未经许可使用自己的资源,从而保护了原始网站的权益。同时,防盗链还可以减少带宽消耗,因为资源只能通过原始网站访问,而不是被其他网站直接链接。

简单示例

const express = require('express');
const app = express();// 定义允许访问的域名列表
const allowedDomains = ['www.example.com', 'www.example.org'];// 获取域名
const getDomain = (url) => {const matches = url.match(/^https?:\/\/([^/?#]+)(?:[/?#]|$)/i);return matches && matches[1];
};// 防盗链中间件
const antiLeechMiddleware = (req, res, next) => {const referer = req.headers.referer;if (!referer || !allowedDomains.includes(getDomain(referer))) {// 如果Referer为空或不在允许的域名列表中,则返回错误响应res.status(403).send('Forbidden');} else {// 合法访问,继续处理请求next();}
};// 使用防盗链中间件
app.use(antiLeechMiddleware);// 需要防盗链的路由
app.get('/protected', (req, res) => {res.send('Protected content');
});// 启动服务器
app.listen(3000, () => {console.log('Server started on port 3000');
});

这篇关于NodeJs 第十九章 防盗链的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/633783

相关文章

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

防盗链的基本原理与实现

我的实现防盗链的做法,也是参考该位前辈的文章。基本原理就是就是一句话:通过判断request请求头的refer是否来源于本站。(当然请求头是来自于客户端的,是可伪造的,暂不在本文讨论范围内)。首先我们去了解下什么是HTTP Referer。简言之,HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务

nvm及nodejs安装相关

安装 1.清空文件夹,卸载nvm及nodejs 2.下载安装包 https://github.com/coreybutler/nvm-windows/releases (也下载有) 3.安装nvm 地址写D:/nvm和D:/nodejs 4.安装nodejs nvm ls available //查询版本nvm install 16.20.2 //安装对应版本号nvm use 1

Nodejs的Express框架使用总结

初始安装express,你也可以通过编辑器的shell安装依赖,比如vs # 创建并切换到 myapp 目录mkdir myappcd myapp# 初始化 package.json 文件npm init -y# 安装 express 到项目中npm i express 新建一个基础的接口 // 0. 加载 Expressconst express = require('expre

YApi 接口管理开源工具 nodejs+ mongoDB

前言介绍 Yapi 由 YMFE 开源,旨在为开发、产品、测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建、发布、维护 API。 权限管理 YApi 成熟的团队管理扁平化项目权限配置满足各类企业的需求 可视化接口管理 基于 websocket 的多人协作接口编辑功能和类 postman 测试工具,让多人协作成倍提升开发效率 Mock Server 易用的 Mock Server,

linux 安装 nodejs

1、去官网下载和自己系统匹配的文件:  英文网址:https://nodejs.org/en/download/  中文网址:http://nodejs.cn/download/  通过  uname -a  命令查看到我的Linux系统位数是64位(备注:x86_64表示64位系统, i686 i386表示32位系统),如图 故下载一下红色框中文件 ,版本为v6.10.0 2、

【NodeJS】Error: Cannot find module 'ms'

转载自:http://blog.csdn.net/echo_ae/article/details/75097004 问题: Error: Cannot find module 'ms'at Function.Module._resolveFilename (module.js:469:15)at Function.Module._load (module.js:417:25)at Module

【NodeJS】如何安装淘宝cnpm

工具官网 Node.js淘宝 NPM 镜像 安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org 输入cnpm -v查看是否正常(前提是你已经设置好了环境变量) cnpm -v 如果想给npm添加淘宝镜像,请参考: 【NodeJS】修改npm的registry为淘宝镜像(npm.taobao.o

【NodeJS】Unexpected token (109:0) 返回错误码500

刚开始报错是这样的: Unexpected token call 是什么我没看懂,但我发现 span.label.lable-success 后面的 #[i+1] 写错了,应该是 #{i+1} 改成完这个错误后又是一个错误提示: What? Unexpected token (109:0) 返回错误码500是什么鬼 我先将自己这段源码的 - if ... - else 检查下

怎么利用NodeJS发送视频短信

随着5G时代的来临,企业的数字化转型步伐日益加快,视频短信作为新兴的数字营销工具,正逐步展现出其大的潜力。视频群发短信以其独特的形式和内容,将图片、文字、视频、声音融为一体,为用户带来全新的直观感受,为企业营销注入新的活力。 支持免费对接试用乐讯通PaaS平台 找好用的短信平台,选择乐讯通,短信群发|短信平台|群发短信软件|群发短信平台|乐讯通PaaS平台http://yun.loktong