美文网首页代码笔记
190218|DDos 及收录相关的问题

190218|DDos 及收录相关的问题

作者: 贝一平 | 来源:发表于2019-02-18 17:04 被阅读0次

    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 了。

    相关文章

      网友评论

        本文标题:190218|DDos 及收录相关的问题

        本文链接:https://www.haomeiwen.com/subject/fxzaeqtx.html