跳转至

动态CDN保护网站与网站加速


2016-03-10 by dongnan

目标

  • 加速网站访问
  • 提升网站安全

方案

这里选择的解决方案是使用 动态CDN,目前主流厂商(如又拍云,七牛云等)提供的 动态CDN 解决方案,能够很好的满足我们的需求,对 DDOS/CC/扫描/SQL注入等恶意行为,交给服务商专业团队处理。

其实动态CDN不止是简单的加速网站访问,更重要的是可以保护网站安全,因为动态CDN隐藏了源站IP地址,能够防止 DDOS 拒绝服务攻击。

另外主流的动态CDN拥有WAF防火墙,能够拦截诸如XSS跨站攻击、SQL注入和其他代码执行等多种攻击方式。

更灵活的加速静态资源,不需要再建立对应的静态加速域名,静态资源跟随项目即可。

测试项目

测试项目: www.xxx.com ,一个使用 php 开发的私募基金官方网站项目,项目功能相对简单提供公告通知、数据查询、资料下载等功能。

缓存规则

  • 对于 php文件不缓存。
  • css/js 缓存1小时。
  • 图片类 缓存7天。
  • 其它文件则缓存1分钟(全局默认)。

验证

隐藏源站IP地址

dig www.xxx.com

; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> www.xxx.com
#....省略
;; ANSWER SECTION:
www.xxx.com.    1403    IN    CNAME    ywwd.b0.upaiyun.com.
ywwd2.b0.upaiyun.com. 1377 IN    CNAME    cun.b9.aicdn.com.
cun.b9.aicdn.com.    222    IN    A   111.202.75.66
cun.b9.aicdn.com.    222    IN    A   60.28.14.125
cun.b9.aicdn.com.    222    IN   A   123.125.93.20
cun.b9.aicdn.com.    222    IN    A    60.28.14.120
cun.b9.aicdn.com.    222    IN   A    60.28.14.121
#....省略

缓存时间

注意Pragma & Cache-Control 头信息,不缓存

curl -IL http://www.xxx.com/index.php
    HTTP/1.1 200 OK
    Server: marco/0.9
    Date: Thu, 10 Dec 2015 00:44:58 GMT
    Content-Type: text/html; charset=UTF-8
    Connection: keep-alive
    Vary: Accept-Encoding
    X-Source: C/200
    Set-Cookie: UUID=100abc9c-0227-9c27-98d7-5668cb284906; expires=Fri, 09-Dec-2016 00:44:52 GMT; Max-Age=31536000; path=/; domain=.xxx.com
    Set-Cookie: SESSION_COOKIE=v01; path=/
    Cache-Control: no-cache, no-store, must-revalidate
    Expires: Sat, 03 Mar 1990 23:33:33 GMT
    Pragma: no-cache
    X-Cache: MISS|MISS from cun-bj-pek3-105, MISS|MISS from cun-bj-pek2-069
    X-Request-Id: 196340f7fc12452276942eb1c9ecedb3
    Via: S.cun-bj-pek3-106, T.75105.M.2, T.75105.M.1, V.cun-bj-pek3-105, T.7574.M.2, T.7574.M.1, M.cun-bj-pek2-069

缓存(2分钟),注意Cache-Control 头信息

curl -IL http://www.xxx.com/topic/472
    HTTP/1.1 200 OK
    Server: marco/0.9
    Date: Thu, 10 Dec 2015 01:28:50 GMT
    Content-Type: text/html; charset=UTF-8
    Connection: keep-alive
    Vary: Accept-Encoding
    X-Source: C/200
    Set-Cookie: UUID=8a434c57-5365-f696-eabc-5668d5c1402f; expires=Fri, 09-Dec-2016 01:28:43 GMT; Max-Age=31536000; path=/; domain=.xxx.com
    Set-Cookie: SESSION_COOKIE=v01; path=/
    Cache-Control: max-age=120
    Expires: Thu, 10 Dec 2015 01:30:50 GMT
    Age: 7
    X-Cache: MISS|MISS from cun-hz-fdi-150, MISS|MISS from cun-tj-tsn-016
    X-Request-Id: 2821e8c61d6569ef775ff355184d2189
    Via: S.ctn-hz-fdi-020, T.250149.M.2, T.250149.M.1, V.cun-hz-fdi-150, T.149.M.2, T.149.M.1, M.cun-tj-tsn-016

登陆账号, 正常。

回复延时,正常。

上传数据,正常。

安全防护
  • 拦截 sql 注入 与 xss 攻击。

  • 拦截 sql 注入

小结

目前项目使用动态CDN加速 已有4个多月,基本满足需求,只是CDN边缘节点与源站之间,因网络链路调整或者延时,偶尔导致 502 /504 等错误,不过出现频率较低,影响不大可以接受。

回到页面顶部