How to protect your CDN origin server

  作者:zhanhailiang 日期:2013-11-27 Published on March 18, 2013 by Aaron

当前对线上网站普遍要求需要7*24小时提供服务,这意味你需要有应对恶意攻击的准备,如DDoS attack

使用CDN有助于对抗DDoS攻击。CDN服务供应商会提供许多高容量的服务器,这样他们能处理峰值的请求比你的源服务器要好得多。此外,CDN服务商通过提供经验丰富的技术支持人员,更完善的技术等来应对DDoS攻击。尽管如此,攻击者可能绕过CDN直接攻击CDN源服务器,同时使源服务器Down,这会导致CDN无法从源服务器拉取内容,此时你的网站就挂掉了。

本文提供多种方法来保护CDN源服务器。我们的目标是只接受来自CDN服务器的请求,其它所有请求都被阻止(prevented).

IP频率限制

限制同一IP请求频率不能超过某个值. 这种方法无法用于CDN IP,因为CDN发过来的请求可能超过我们所设的频率,但是CDN请求肯定是合法。

白名单

  1. 通过CDN请求IP白名单来判断请求合法性。使用这种方法的问题在于一般情况下我们无法获取完备的CDN IP白名单列表。
  2. 通过分析请求头来判断请求是否来源于CDN来判断请求是否合法。这种方法只需要判断HTTP请求头中部分特殊的标识符来判断。如使用Akamai.net动态CDN请求头部是否含HTTP_VIA,如下判断:
if(!isset($_SERVER['HTTP_VIA']) || strpos( $_SERVER['HTTP_VIA'],'akamai' ) === false) {
    exit(0);
}

源服务器使用不可猜测的域名

这是一种简单的技巧,同时也是最好的解决方案。创建一些随机的字母数字字符组成的字符串作为该子域名。例如:205ck07023nckhfsh92485.example.com。此主机名称将被只知道到CDN,原点的所有者和原点的DNS提供商。它可以猜到?是的,但可能性很小。它可以泄漏?是的,但同样可能性很小。

原文:How to protect your CDN origin server

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值