CDN 禁止外链,如何配置 CDN 隐藏站点?
CDN 是什么?为什么要禁止外链?
CDN (Content Delivery Network) 是一种分布式部署的网络架构,可以将网站的静态资源如图片、视频等存放在云端,通过就近访问加速的方式提供给用户。
CDN 可以加速网站访问,但同时也需要考虑风险,因为 CDN 存在被恶意外链的风险。被恶意外链会导致 CDN 服务器直接传输数据给非授权的第三方网站,甚至可能导致蓝盾 CDN 账号或者站点的信息被揭密。
CDN 如何禁止外链?
CDN 平台为了防止被恶意外链,普遍都提供 CDN 防盗链和加锁机制,例如蓝盾 CDN 就支持五种防盗链方案:
1. Http Waf 防盗链
通过配置蓝盾 CDN 平台提供的 http 防盗链规则,选择需要开启防盗链的源站域名或者 IP,将简单的域名加密转换成等同于防火墙识别的指纹规则,在不影响原有站点功能情况下,实现防盗链和加密混淆上网掩饰。
2. Referer 防盗链
添加 Referer 防盗链 HTTP头,兼容所有 Web 站点、可以防止所有无效映像。
3. URL地址中的 Sign 签名
在原始的 URL 地址中追加 Authorization 参数并对 Authorization 值采用 HMAC-SHA1 算法加以签名,这个 Authorization 参数就是 CDN 除了 URL 以外的特征码。这种方法可以避免简单的字符替换攻击。
4. Token 签名防盗链
CDN 平台生成一个 Token 并加到链接的 URL 末尾,具备一定的秒基础和防止 Token 加解密被破解。(Token 是一串自定义的秘钥值对)
如何配置 CDN 隐藏站点?
站点的隐藏主要是针对 html 页面内容进行隐藏,下面讲述一种简单的实现方法:
1.在网站根目录下部署 index.php
在网站根目录下部署诸如 index.php,将该文件作为 CDN 域名之外网站入口,并在该文件中对用户访问进行识别判定,判断是否处于 CDN 加速状态、正确性和否为防盗链推送过来,以此来封杀所有非法流量。
2.隐藏 html 静态页面
将 HTML 静态页面的真实地址隐藏,一般方式为 CDN 技术提供供应商的区分符,在 HTML 静态页面的文件名链接中添加,隐藏 HTML 真实路径,达到防盗目的。
以上方法主要针对传统的 HTML 静态页面的隐藏,可以采取一些其他措施进行 HTML 的 URL 加密混淆,如加密参数令牌等。作为网站或 CDN 运维人员,需要高度关注时时刻刻可能发生的黑客攻击,做出有效、合适的应对措施。
结语
CDN 式的网站加速能够显著加快网站分发速度,但也需要注意防范风险,特别是在安全策略防盗链方面,平台提供商提供的全面与高防的安全策略可以在一定程度上保障站点的安全性。
同时,也需要根据实际情况,采取本文所提到的诸如隐藏页面而非直接在 CDN 上访问、实现全局良好的防火墙的安全政策措施来尽量降低攻击带来的危害。