动态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
等错误,不过出现频率较低,影响不大可以接受。