天天看点

NAS、VPS注意!你需要做一层隔离才安全

作者:iN在

这件事情是这样的,iN自己虽然不弄在家里弄NAS什么的,但是还是会有在家看视频的需求的。同样也很懒,懒得各种论坛搜索下载资源。因此就在家做了一个视频站点,通过源搜刮的功能来收集视频源。

NAS、VPS注意!你需要做一层隔离才安全

这件事很多很多人都会做,也没必要写什么教程。

不过,有的时候会因为网络封堵的问题导致一些视频源不太通畅,这不最近几天《庆余年2》在收集的时候由于这个剧太火,导致了源URL的宕机,丢在VPS上的服务器也就搜索不到任何资源了……

这件事实际上来源于各种服务API端口的限制。

怎么整?

我们是可以利用cloudflare的Worker来处理的。方法就是简单的给我们的URL请求加个壳。

说下原理:

大部分基于各种URL的API通常都并不会很在意源请求地址是什么,但是往往很频繁请求的源往往会被block掉。这就导致我们在通过web客户端去调用的时候出现错误。

NAS、VPS注意!你需要做一层隔离才安全

同样,大多数基于WEB API的内容是可以修改的,如果被修改后往往会引入不安全的问题。

对于这种现象,我们可以利用网络工具给请求的目标加个“壳子”,确切说就是URL转发——把我们要请求的URL地址发送到自己制作的一个Worker脚本中,然后再让这个Worker脚本去请求真正的服务,请求的结果再通过Worker返回我们自己的服务器中。

说到这里Worker的概念大家可以有一个模糊的框架了——Cloudflare Workers 是一种边缘计算技术,使开发者能够在 Cloudflare 的全球网络上运行 JavaScript 代码。与传统的服务器托管不同,Cloudflare Workers 允许在离用户最近的地点执行代码,从而提高响应速度和性能。

我们说的“加个壳”,实际上在网络中属于一种边缘计算,利用Woker可以将数据处理和计算资源分布在网络的边缘节点,而不是集中在家里的NAS或者数据中心的的VPS中。

由于加了一个中间的处理层,我们就可以在源数据和服务之间再做一层判定来提高安全性。同时大部分Worker本身是不固定IP地址的,对于Web API的访问也可以避免因为访问过于频繁封IP的问题。

要实现这个功能,这样做:

前提条件:

1.你有一个cloudflare账户可以建立Worker

2.你有需要访问的WEB API地址。

非充要条件:稍微会一点js脚本知识。

做法:

进入cloudflare控制台,到Worker设置中建立一个新的Worker

NAS、VPS注意!你需要做一层隔离才安全

给Worker命名:

NAS、VPS注意!你需要做一层隔离才安全

这个名字就是一个好记的,你可以快速识别出来的标记名称,访问Worker的时候也是通过这个名字做标识的。

同时在代码预览中cloudflare会生成一个简单的hello world脚本,让我们部署好的Worker至少可以返回一些信息。

在这个界面没有必要做任何其他修改,直接点击部署按钮我们就可以部署出一个Worker脚本。

NAS、VPS注意!你需要做一层隔离才安全

在首次部署成功后,我们就可以利用编辑代码的按钮对刚刚建立的Worker进行代码编辑

NAS、VPS注意!你需要做一层隔离才安全

进入代码编辑器中,cloudflare提供了一个简单的代码编写环境,分三个部分

1:代码编写

2.请求发送

3.结果

例如iN今天做的视频采集的Worker,只有几行代码:

NAS、VPS注意!你需要做一层隔离才安全

原理很简单,将请求到这个Worker上的URL参数读取出来,然后替换给targetUrl,再经过fetch(targetUrl)的方法取得原始的WEB API应该返回的信息。这时候,就能拿到原始Web API的回复,再将回复原封不动的传递给我们自己的服务器或者NAS就可以了。

NAS、VPS注意!你需要做一层隔离才安全

将原始API所需要的参数重网址部分,替换为我们自己的的Worker的地址,保留原始参数不变,就可以工作起来了。

原始API URL的形式: AAAAA/参数

Worker的主机:CCCCC

改变后的形式:CCCCC/参数

就这么简单。

说好处:

首先是隐蔽了我们自己主机的地址,毕竟目前提供API的很多组织或个人还是不太可信的,没必要让对方知道我们自己的IP

其次,速度快,由于Worker是建立在CDN网络中的,在全球各个位置都有自己的镜像,因此对于Worker到目标的网络距离要远小于我们自己的主机到目标的距离。这就保证的访问速度。

再次,目标API的内容是可以审计的。在到达我们自己系统之前我们可以利用程序审计一下返回内容,然后再加入自己的系统。这样的安全性可以提高一下。

最后说下费用:10万次/日免费,对于一般家用和个人使用很难在一天内发出10万次的访问量。目前使用了半年多的Worker还没有因为这个功能付过费呢!

继续阅读