DDos 攻击及解决方案
什么是 DDos 攻击
DDOS =Distributed (分布式)+ DOS (denial of service 停止服务)
表示这种攻击的目的,就是使得服务中断。
对于 DDos 攻击,阮老师说的很清楚了。
比如说你开了一个餐厅,店面很小只能容纳30人,正常情况下你进了饭店,坐下就可以点餐,比较忙的时候可能得等一会儿。
但是 DDos 攻击就相当于你不交保护费,流氓就带着300个人来闹事儿。每个人都不提保护费的事儿,不过就是大家都饿了,要吵闹着一起点餐罢了。
这种情况下,你的饭店就瘫痪了。你只能挂牌暂停营业。但是前门堵住了,流氓又从后门来了,你把后门堵上了,流氓又砸了窗子进来了。
你的饭店被流氓围得水泄不通,而正想来你饭店吃饭的人都被堵在了外面。这就是 DDos 攻击。
它在短时间内发起大量请求,耗尽服务器的资源,无法响应正常的访问,造成网站实质下线。
DDos是一类攻击,比较常见的攻击类型是 CC 攻击。
它就是简单粗暴地送来大量正常的请求,超出服务器的最大承受量,导致宕机
DDos 攻击的解决方案是什么
1. 一个备份网站,或者一个临时主页
备份网站是在你的服务器收到攻击时可以立刻切换,保持正常提供服务。
当然如果条件不允许,你至少要有一个页面告诉用户你们现在不能提供服务。
2. Http 请求拦截(封 IP)
封 IP 从三个方面实现,按照实现效果由好到坏排序为:
2.1. 专用硬件 服务商提供的防火墙服务
2.2. 服务器 操作系统的防火墙软件如 Linux中的 iptables。
2.3. Web 服务器 如 nginx 配置文件
Nuxt.js框架中如何实现百度收录
一般我们知道,在 Nuxt.js框架中要想修改 head标签,需要需改 nuxt.config.js文件
head: {
title: '首页',
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ hid: 'description', name: 'description', content: pkg.description },
{ name: 'renderer', content: 'webkit'},
{ name: "baidu-site-verification", content:"zCozEgX8iZ" }
],
link: [
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
{ rel: 'stylesheet', href: 'https://cdn.bootcss.com/minireset.css/0.0.2/minireset.min.css'}
]
}
而当你的网站需要做百度收录(https://ziyuan.baidu.com/)的时候。这种方式就有可能导致在验证链接的时候验证失败。
因为页面在渲染后生成的代码会多出如下的内容
data-n-head="true"
如何解决这个问题。
在项目的根目录下创建一个 app.html作为模板
<!DOCTYPE html>
<html {{ HTML_ATTRS }}>
<head>
<meta name="baidu-site-verification" content="zCozEgX8ij" />
{{ HEAD }}
</head>
<body {{ BODY_ATTRS }}>
{{ APP }}
<script>
// 百度收录
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script>
</body>
</html>
这个时候再去验证就 OK 了。
网友评论