实践教程
  • EdgeOne 自动预热
  • 跨地域安全加速(海外站点)
  • 通过流量调度灰度接入 EdgeOne 安全加速
  • 通过流量调度至多厂商服务
  • 安全防护事件告警
  • 防盗刷实践教程
  • 实现基于客户端 IP 地址的会话保持
  • 实现基于客户端地理特征的指定回源
  • 防盗链实践教程
  • 免费证书快速实现 HTTPS 访问
  • 自动清除缓存
  • EdgeOne 实现 Android APK 的动态打包
    • 功能简介
    • 步骤一:预处理 Android APK 母包
    • 步骤二:EdgeOne 边缘函数写入渠道信息到 APK 包
    • 步骤三:测试并验证生效结果

防盗链实践教程

本文为您介绍如何通过 EdgeOne 提供的防盗链能力,保护您的内容免受未经授权的盗链访问,提升加速服务的安全性。

背景介绍

盗链指的是其他网站或应用程序直接链接到您的资源,而未经您的授权。这种行为可能对您的网站造成严重影响。首先,盗链会消耗您的带宽和服务器资源,导致网站速度变慢,甚至可能导致服务器崩溃。其次,盗链可能导致您的内容被滥用或未经授权传播,这将严重损害您的品牌形象和声誉。
为了应对这些问题,EdgeOne 提供了一系列强大的防盗链能力。通过使用 EdgeOne 的防盗链功能,您可以确保只有经过授权的用户才能访问和使用您的内容。您可以设置白名单,仅允许特定的域名或 IP 地址访问您的资源,从而阻止未经授权的盗链行为。此外,您还可以根据需要灵活配置自定义的防盗链规则。
借助 EdgeOne 的防盗链能力,可以有效保护您的内容安全。您可以放心提供高质量的内容,而无需担心盗链和滥用问题。这将有助于维护您的品牌形象和声誉,同时节省带宽和服务器资源,提升网站的性能和可靠性。

实现方式

1. HTTP 应答:实现基础访问控制,如 IP 黑白名单、Referer 黑白名单、UserAgent 黑白名单、区域访问控制。详情请参见 HTTP 应答。该方式存在的问题是:
IP 地址可以被伪造或隐藏,使攻击者能够绕过 IP 黑白名单的限制。他们可以使用代理服务器、虚拟专用网络(VPN)或其他技术来隐藏真实的 IP 地址,从而绕过访问限制。这使得 IP 黑白名单在防止未经授权访问方面变得不够可靠;
Referer 头部也容易被伪造。攻击者可以通过修改 HTTP 请求头部中的 Referer 字段来绕过 Referer 黑白名单的限制。他们可以使用浏览器插件、代理工具或其他技术来修改 Referer 字段,使其看起来像是来自受信任的来源,从而绕过访问限制;
User-Agent 头部的问题和 Referer 头部类似,同样存在容易被伪造的风险。
2. Token 鉴权:即时间戳防盗链,安全性更高,更可靠。详情请参见 Token 鉴权。该方式相对上述基础访问控制,优势及问题如下:
防止链接的重复使用:每个链接都包含时间戳参数,即使链接被转发分享,一旦时间戳过期,则其他人无法使用该链接获取到资源。
难以伪造:时间戳防盗链增加了对盗链的难度,因为攻击者需要知道鉴权算法、鉴权密钥、时间戳格式等信息方可构造出可通过校验的 URL,而这些信息攻击者很难猜测或伪造;
客户端需改造:该功能的使用需要客户端和 EdgeOne 配合,客户端发起加密的 URL 请求后,EdgeOne 负责根据预先设定的规则对 URL 进行合法性验证。因此在实施时需要考虑一些额外的开销和复杂性。
3. 边缘函数:定制化的防盗链能力,如远程鉴权等,可通过 边缘函数 支持。该方式的优势及问题如下:
高度安全性:远程鉴权可以提供更高的安全性。鉴权过程由客户提供的远程服务器完成,而非 EdgeOne 节点服务器,减少了被攻击者窃取的风险;
灵活性和可扩展性:远程鉴权提供了更大的灵活性和可扩展性。客户可以灵活控制鉴权逻辑,从而适应不断变化的业务需求和用户访问模式。
客户需改造:客户需要部署远程鉴权服务,并确保远程服务器的可靠性、安全性和性能,以避免鉴权延迟增加,从而影响服务质量。此外,为了应对可能的异常情况,需要设置适当的鉴权超时时间。通常情况下,如果鉴权超时,则直接放行请求。然而,如果鉴权服务出现异常,可能会导致非法请求被放行,从而增加安全风险。

操作指南

Referer 防盗链

基于 HTTP 请求头中的 Referer 字段设置访问控制规则,实现对访客的身份识别和过滤,防止网站资源被非法盗用。配置 Referer 黑白名单,EdgeOne 会根据名单识别请求身份,允许或拒绝访问请求。允许访问请求,EdgeOne 会返回资源链接;拒绝访问请求,EdgeOne 会返回 403 响应码。

配置示例

若您 example.com 站点下的 www.example.com 域名业务仅允许 Referer 为 https://www.example.com 的访问,其它请求则直接 403 拒绝,可参考以下步骤:
1. 登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,单击站点列表,在站点列表内单击需配置的站点。
2. 在站点详情页面,单击站点加速,进入站点全局配置页面,单击规则引擎 Tab 页。
3. 在规则引擎页面,单击创建规则,选择新增空白规则
3.1 在规则编辑页面,匹配类型选择为 HOST 等于 www.example.com,同时设置匹配类型 HTTP 请求头 Referer 头部值不等于 https://www.example.com
3.2 单击操作,在弹出的操作列表内,选择操作为 HTTP 应答
3.3 配置响应状态码 403,响应页面通过下拉框选择,若当前无页面,则需要单击新建页面先创建,创建完成再引用。
4. 完整的规则配置如下所示,单击保存并发布,即可完成该规则配置。


IP 黑白名单

通过配置 IP 黑白名单过滤用户请求,拦截或允许特定 IP 的访问,可以有效限制访问来源,解决恶意 IP 盗刷、攻击等问题。

配置示例

若您 example.com 站点下的 www.example.com 域名业务仅允许客户端 IP 在 1.1.2.1~1.1.2.254 地址范围(包含 1.1.2.1 和 1.1.2.254)时,才能访问该加速域名下的资源,否则直接 403 拒绝,可参考以下步骤:
1. 登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,单击站点列表,在站点列表内单击需配置的站点。
2. 在站点详情页面,单击站点加速,进入站点全局配置页面,单击规则引擎 Tab 页。
3. 在规则引擎页面,单击创建规则,选择新增空白规则
3.1 在规则编辑页面,匹配类型选择为 HOST 等于 www.example.com,同时设置匹配类型客户端 IP 等于 1.1.2.0/24
3.2 单击操作,在弹出的操作列表内,选择操作为 HTTP 应答
3.3 配置响应状态码 403,响应页面通过下拉框选择,若当前无页面,则需要单击新建页面先创建,创建完成再引用。
4. 完整的规则配置如下所示,单击保存并发布,即可完成该规则配置。


UserAgent 黑白名单

User-Agent 是 HTTP 请求头的一部分,包含用户访问时所使用的操作系统及版本、浏览器类型及版本等标识信息。您可以通过配置 User-Agent 黑白名单规则,限制访问业务资源的用户来源,提升加速的安全性。

配置示例:

若您 example.com 站点下的 www.example.com 域名业务被谷歌爬虫恶意爬取资源,导致域名带宽突增,严重影响账单。通过分析,发现爬虫请求 User-Agent 包含spider,您希望拦截该类请求,可参考以下步骤:
1. 登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,单击站点列表,在站点列表内单击需配置的站点。
2. 在站点详情页面,单击站点加速,进入站点全局配置页面,单击规则引擎 Tab 页。
3. 在规则引擎页面,单击创建规则,选择新增空白规则
3.1 在规则编辑页面,匹配类型选择为 HOST 等于 www.example.com
3.2 单击操作,在弹出的操作列表内,选择操作为 HTTP 应答,同时设置匹配类型 HTTP 请求头 User-Agent 头部值正则匹配 *spider*
3.3 配置响应状态码 403,响应页面通过下拉框选择,若当前无页面,则需要单击新建页面先创建,创建完成再引用。
4. 完整的规则配置如下所示,单击保存并发布,即可完成该规则配置。


Token 鉴权

Token 鉴权是一种实现原理简单、可靠性高的访问控制策略,通过配置鉴权规则进行 URL 访问校验,可有效防止站点资源被恶意盗刷。该功能的使用需要客户端和 EdgeOne 配合,客户端负责发起加密的 URL 请求,EdgeOne 负责根据预先设定的规则对 URL 进行合法性验证。详细的配置使用方式,您可以参考Token 鉴权

远程鉴权

如果您有自己的鉴权服务器,可以通过配置远程鉴权,将用户请求转发至您指定的鉴权服务器,由鉴权服务器对用户请求进行校验,适用于需要精确控制访问权限和实时鉴权验证的场景。EdgeOne 可通过边缘函数实现远程鉴权能力,示例函数可参考 远程鉴权