精华内容
下载资源
问答
  • 经常浏览网络安全相关文章的时候,经常看到“中间人攻击”的字样,这个词颇有神秘感,很多人却不知道到底什么中间人攻击,怎么防范中间人攻击。今天小蔚就来和大家说道说道。 发生中间人攻击后,信息会被窃取和...

    经常浏览网络安全相关文章的时候,经常看到“中间人攻击”的字样,这个词颇有神秘感,很多人却不知道到底什么是中间人攻击,怎么防范中间人攻击。今天小蔚就来和大家说道说道。

    发生中间人攻击后,信息会被窃取和篡改,造成不可避免的损失。历史上曾经发生过多著名的中间人攻击事件。

    2013年,雅虎在中国大陆遭受SSL中间人攻击,浏览器发出证书错误警告,影响各个国家的Yahoo主站。

    2020年,著名代码托管平台Github疑遭受SSL中间人攻击,SSL证书被替换为一个填写了QQ邮箱的自签名证书,浏览器出现安全警告。

    中间人攻击事件屡见不鲜,那到底什么是中间人攻击呢?因为中间人攻击是发生在通信过程中的,所以要想明白什么是中间人攻击,首先必须了解加密通信的过程。

    加密通信

    假设我们回到没有计算机的年代,人们之间的通信,只能通过寄信的方式进行。使用普通的写信收信很不安全,于是小蔚开了一家特别的邮局,专门保证信件的安全,信的内容不会被篡改和窃取。

    要怎么保证信件的安全性呢?小蔚想到了一个好办法。

    首先,进一批安全性很高的锁,再进一批无法被暴力破解的铁箱子。接着把锁和箱子放在门口。

     

    如果小红想和某一个人通信,小红要先买一把锁,这把锁配有两把钥匙。来到加密邮局门口后,将其中一把钥匙和锁放进铁箱子里,再用小蔚提供的锁(公钥)锁上。

    因为锁是小蔚提供的,除了小蔚,其他人是没办法将铁箱子打开的。

     

    小红可以将铁箱子邮寄任何人了。拿到铁箱子的人,只需要来找小蔚打开箱子,就能建立与小红之间的通信,

    假设小红将箱子交给了小明,小明来找小蔚打开铁箱子,取出小红的钥匙(密钥)和锁后,写下想和小红说的话,放进铁箱子里即可。

    接下来,小蔚会用小红提供的锁,将箱子锁上。

     

    当箱子寄回去给小红后,小红只需要用钥匙将锁打开,就能看到信的内容了。想要寄信的话,把信放进去,重新锁上寄回即可。

    以上就是加密通信的过程,中间人攻击又是怎么回事呢?

    中间人攻击

    有一个惯犯叫张三,整天在小蔚加密邮局门口晃悠,他找准了时机,将加密邮局门口的锁,偷偷换成了假锁。

    有一天他遇到了前来寄信的小红,他骗小红说,自己是小蔚加密邮局的工作人员,只要把东西给他就可以了。

    小红信以为真,将一把锁和钥匙交给了张三。张三却把锁和钥匙留下,将自己的一把锁和钥匙交给小蔚加密邮局。

    小蔚很轻松地将锁打开,换上张三的锁,并将写好的信放在箱子里。

    这时候,张三一顿洗脑,让小蔚相信他可以将箱子交还给小红。

    此时中间人攻击顺利完成。张三可以用轻松地打开铁箱子,看到信件的内容,知道其中的秘密,甚至还能修改内容后,再还给小红。

    防范中间人攻击

    小蔚日常盘点库存的时候,发现了被张三偷偷换掉的假锁,为了杜绝这一现象,小蔚找到了蔚可云,请求蔚可云给小蔚加密邮局门口的锁,全都刻上无法伪造的钢印。这样一来,其他人就无法再偷偷将这些锁换掉了。

    蔚可云给锁刻上钢印的过程,就是配置SSL证书的过程。当网站配置安装SSL证书后,就能很有效地抵御中间人攻击。

    可是大家都不认识蔚可云,不信任它刻的钢印怎么办?这时候,一个十分权威,可以让他人无条件信任的人出现了,他告诉世界上所有的人,我来刻钢印,再授权给蔚可云售卖。于是大家纷纷对蔚可云提供的钢印充满了信任感。纷纷认定小蔚加密邮局的刻着钢印的锁,是真的。

     

    这个十分权威的人,就是SSL证书的颁发机构。

    展开全文
  • 我们在做内网渗透的时候,往往通过ARP投毒、DNS欺骗、会话劫持等来发起中间人攻击(MITM)。利用这些手段攻击HTTP协议的网站简直易如反掌。但是现在几乎所有的网站都已经升级为更加安全的HTTPS协议了,那么是不是意味...

    我们在做内网渗透的时候,往往通过ARP投毒、DNS欺骗、会话劫持等来发起中间人攻击(MITM)。利用这些手段攻击HTTP协议的网站简直易如反掌。但是现在几乎所有的网站都已经升级为更加安全的HTTPS协议了,那么是不是意味着中间人攻击就无效了呢?

    1、HTTP协议

    我们先看HTTP协议为什么不安全。我认为主要可以分为3点:

    • 无法保证报文的完整性,报文有可能被纂改。因为HTTP协议无法证明数据报文的完整性,所以在请求或响应送出之后直到对方接收之前的这段时间内,即使请求或响应的内容被纂改,也没有办法获悉。换句话说,没有任何办法确认,接收方得到的报文和发送方发送的报文前后相同的。
    • 没有身份验证机制,有可能遭遇伪装。HTTP协议没有用户和网站的身份验证机制,用户在使用浏览器浏览网站时,有可能被DNS劫持,从而导致用户浏览器被导向了伪造的网站,在输入账号密码等重要信息时会被非法窃取。
    • 通信使用明文,内容可能会被窃听。因为HTTP协议使用的是明文传输,通信过程是完全开放的,所以一旦被第三者盯上,对方就可以轻易的监听途经的数据包,导致信息泄露、信息被篡改甚至是信息伪造。

    由于以上原因,现在网站基本上都升级为HTTPS协议了。在讲HTTPS之前,需要先弄清楚什么是PKI。

    2、PKI

      公钥基础设施(Public Key Infrastructure)英文简称PKI。听名字就不太好理解,因为它不是某个具体的算法或协议,而是一系列设施的集合,是一个体系。完整的 PKI 系统必须具有数字证书、认证中心(CA)、证书资料库、证书吊销系统、密钥备份及恢复系统、PKI 应用接口等组成部分。其中CA包括CA中心和CA系统。CA系统是专门负责颁发数字证书的系统,该系统功能包括:

    • 颁发证书
    • 废除证书
    • 证书的更新
    • 证书验证
    • 管理密钥

      然后,负责管理并运营 CA 系统的机构称为 CA 中心。我们习惯性统称为CA。CA是具有权威性而且值得信任的。而且CA证书是存在信任链的,根CA授权并信任中间CA,那么中间CA也是可信的。根 CA 是指在组织的 PKI 中最受信任的 CA 类型。如果根 CA 被泄漏或向未经授权的实体颁发了证书,则组织中任何基于证书的安全性都变得易受攻击。
      因此,通常根 CA 的物理安全性和证书颁发策略都比中间 CA 更严格。根 CA 虽然可以直接向最终用户颁发证书,但实际上,它们只向其他 CA(称为从属 CA或中间CA)颁发证书。以Chrome浏览器为例,看浏览器内置的根CA:

    PKI的基础是密码学,主要用到3种类型的密码学算法:散列算法、非对称加密和对称加密。这些类型算法用的最多的如下表:
    加密基元算法
    散列函数MD5、SHA-1、SHA-2
    非对称加密RSA
    对称加密AES、DES

      它们是怎么发挥作用的,举个例子:我们访问京东时,浏览器地址栏输入www.jd.com,然后回车就能进入官网购物了。但是我们怎么判断我们访问的是不是真正的京东呢。因为攻击者通过DNS欺骗完全可以把你引导至一个伪造的京东。这时就需要数字证书,这个证书是CA机构颁发给京东官网的,当你访问时把证书发给你就可以辨别真伪了。如果攻击者也伪造一个证书呢?这就需要用到数字签名了。数字签名使用的就是RSA非对称加密算法。
      非对称加密算法需要两个密钥:公开密钥(Public Key,简称公钥)和私有密钥(Private Key,简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。大致如下图:

       CA机构只需用自己的私钥对证书摘要签名,对方收到后用对应的公钥解密,就能证明是CA颁发的。因为攻击者没有CA的私钥,所以无法伪造证书。

    3、HTTPS协议

      很多人说HTTPS就是披了一层 SSL 的 HTTP。可以这么理解。

      https并非应用层的一种新协议,只是http通信接口部分用ssl/tls协议代替而已。通常http直接和tcp通信,当使用ssl时则演变成先和ssl通信,再由ssl和tcp通信。也就是 HTTPS=HTTP+SSL。
    这里提下SSL和TLS的区别:

       在SSL更新到3.0时,IETF对SSL3.0进行了标准化,并添加了少数机制(不过几乎和SSL3.0无差异),标准化后,IETF将其更名为TLS1.0(TransportLayer Security 安全传输层协议),可以说TLS就是SSL的新版本3.1。TLS(传输层安全)是更为安全的升级版 SSL。由于 SSL 这一术语更为常用,因此我们仍然将安全证书称作 SSL。事实上我们现在用的都是TLS,但因为历史上习惯了SSL这个称呼,平常还是以SSL为多。
      建立HTTPS就需要用到PKI,需要CA颁发证书。建立HTTPS通信过程大致分3个步骤:

    • 认证站点:客户端向站点发起HTTPS请求,站点返回数字证书。客户端通过数字证书验证所访问的站点是真实的目标站点。
    • 协商密钥:客户端与站点服务器协商此次会话的对称加密密钥,用于下一阶段的加密传输。
    • 加密通信:客户端与站点直接使用已协商的对称加密密钥传输数据。

    用图来描述CA、服务器和客户端之间关联大致如下:

       我们来详细解剖第一个步骤验证数字证书的全过程,刚开始学的时候在网上查了很多资料,众说纷纭,后来慢慢通过实践才总结出来,因此学网络安全很多时候需要自己慢慢积累和摸索。当浏览器收到服务器发来的证书时,会进行以下4步验证

    1. 服务器提供的证书是不是受信任的CA机构颁发的。即证书颁发机构是不是浏览器内置列表里的(上面有讲)。
    2. 再检查此证书的subject(持有人)是不是用户正在访问的域名。即证书中的域名是否与当前访问域名一致。例如访问京东必须是京东的数字证书,而不是百度的证书。
    3. 检查证书的吊销列表以及证书的有效期(证书是否过期或者是否被吊销)。
    4. 签名是否有效(用本地保存的信任证书里的公钥去检验服务器证书里的签名)。即虽然你写的是某某CA颁发的,但我不信。我要用该CA的公钥去检验数字签名,如果检验通过才能证明真的是该CA颁发的。

       拿Chrome浏览器举例,2021年8月,谷歌进一步更新了其浏览器的默认安全策略。目前默认的安全级别:只要以上4步有任何一步出现问题,立即阻止本次用户的访问,而且是强行阻止(用户无法选择继续访问)。
       但这仅仅是Chrome浏览器,其它浏览器和APP并非都想谷歌一样谨慎。接下来讨论Android APP的HTTPS中间人攻击。

    4、HTTPS证书校验绕过

       前面讲过,现在绝大部分通信都采用了HTTPS协议,使得在Android渗透过程中,会经常遇见https证书校验,从而导致不能抓取数据包。

    几乎所有网络数据的抓包都是采用MITM的方式,包括常用的Fiddler、Burpsuite等抓包工具。所以我们以抓包来描述中间人攻击。

       现在的APP都是HTTPS服务提供商自己开发的,开发者可以先将自己服务器的证书打包内置到自己的APP中,或者将证书签名内置到APP中,当客户端在请求服务器建立连接期间收到服务器证书后,先使用内置的证书信息校验一下服务器证书是否合法,如果不合法,直接断开。
       当APP是HTTPS时,单纯的使用Burpsuite无法抓取数据包,原因是APP启用了SSL Pinning(又称“SSL证书绑定”)。HTTPS建立有单向认证双向认证两种情况,如下图所示:

       单向认证的情况下,客户端只验证服务端是否合法,服务端对客户端不再进行验证。再看双向认证:
       双向认证需要服务端支持,客户端必须内置一套公钥 + 私钥。在SSL/TLS握手过程中,服务端会向客户端请求证书,客户端必须将内置的公钥证书发给服务端,服务端验证公钥证书的真实性。双向认证内置的公钥+私钥是额外的一套,不同于证书固定内置的公钥证书。

       双向认证时客户端也是有一个证书的,建立通信时不仅客户端要验证服务端的合法性,服务端还要验证客户端的合法性。这样APP抓包就有三种情况:

    情况1,客户端不存在证书校验,服务器也不存在证书校验。
    情况2,客户端存在校验服务端证书,服务器不存在证书校验,单项校验。
    情况3,客户端存在证书校验,服务器也存在证书校验,双向校验。

      情况1没有难度就不讨论了,在情况2的前提下,我们使用JD-GUI进行反编译,然后全局搜索:checkClientTrusted 或者checkServerTrusted 字符串,如下图:

      这里可能会遇到SSL Pinning,SSL Pinning是一种防止中间人攻击的技术,主要机制是在客户端发起请求–>收到服务器发来的证书进行校验,如果收到的证书不被客户端信任,就直接断开连接不继续请求。可以发现中间人攻击的要点是伪造了一个假的服务端证书给了客户端,客户端误以为真。防御攻击思路就是,客户端也预置一份服务端的证书,比较一下就知道真假了。

    SSL-pinning有两种方式:
    证书锁定(Certificate Pinning) 和公钥锁定( Public Key Pinning)。
    证书锁定:

    开发者在客户端代码内置仅接受指定域名的证书,而不接受操作系统或浏览器内置的CA根证书等任何证书,通过这种授权方式,保障了APP与服务端通信的唯一性和安全性,因此客户端与服务端之间的通信是可以保证绝对安全。但是CA签发证书都存在有效期问题,缺点是在证书续期后需要将证书重新内置到APP中。

    公钥锁定:

    提取证书中的公钥并内置到客户端中,通过与服务器对比公钥值来验证连接的正确性。制作证书密钥时,公钥在证书的续期前后都可以保持不变(即密钥对不变),所以可以避免证书有效期问题,一般推荐这种做法。

      不过安全性高的都采用了证书锁定,比如微信在6.7.3版本以后就是采用证书锁定的方式,它不再信任系统内置的证书,而只信任自己的证书。而Android系统从7.0开始也不再信任用户CA证书,只信任系统内置的证书。
      有两种绕过方式,方法一是在已经root的设备上安装CA证书,然后直接抓包即可,在本机无法取得root的情况下,通过模拟器也可抓到https数据包。方法二不需要root,而是通过反编译apk,找到校验证书方法,将校验部分删除,从而变成情况1,再编译apk,就可以抓取数据包。举个例子:利用Androidkiller.exe反编译apk文件,找到checkServerTrusted方法的smali代码,如图:

    进行适当删改后:
    反编译apk文件再查看其代码:
    完成后,安装apk至Android设备,再次尝试抓包:
      发现可以成功获取数据包。不过该方法有一个前提就是:客户端程序没有对自身完整性进行校验。否则是无法成功的。

       前面我们提到有些APP不再信任用户安装的CA证书,也有一个绕过方法:在AndroidManifest配置文件中修改networkSecurityConfig选项。

    <?xml version="1.0" encoding="utf-8"?>
    <manifest ... >
        <application android:networkSecurityConfig="@xml/network_security_config">
         ......
        </application>
    </manifest>
    

    然后在项目res目录下新增一个文件夹,命名为xml,然后在xml目录下新建一个network_security_config.xml文件,命名跟上面匹配。

    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <base-config cleartextTrafficPermitted="true">
            <trust-anchors>
                <certificates src="system" />
                <certificates src="user" />
            </trust-anchors>
        </base-config>
    </network-security-config>
    

      这个配置即表示,APP信任用户CA证书,让系统对用户CA证书的校验给予通过。不过此方法往往只对少数apk管用,大部分APP都做了加固,很难通过该方法来绕过证书验证。
      另外还可以调低targetSdkVersion < 24。如果想抓一个APP的包,可以找个历史版本,只需要其targetSdkVersion < 24即可。然而,随着GooglePlay开始限制targetSdkVersion,现在要求其必须>=26。2019年8月1日后必须>=28,国内应用市场也开始逐步响应这种限制。目前绝大多数APP的targetSdkVersion都大于24。所以这种方法基本行不通了,就算可以也不是长久之计。
      还有一种方法就是可以使用平行空间或者Virtualapp来曲线救国。平行空间和VirtualApp这种多开应用可以作为宿主系统来运行其它应用,如果平行空间和VirtualApp的targetSdkVersion < 24,那么问题也就解决了。不过这个方法经过我多次尝试,发现往往不好使。
       最后一种方法是把CA证书安装到系统内置列表里,这种方法需要root。
      然后来看实例,我先开一台虚拟机A伪造服务端,可以自签证书。用另一台电脑B正常上网(假装是受害者)。然后对B发起中间人攻击。
       正常情况下,浏览器安全肯定不会这么脆弱,来看浏览器是如何借助HTTPS抵御中间人攻击的。用Edge浏览器访问www.baidu.com。如图:

       得利于TLS证书体系,虽然我们能发起中间人攻击,不过浏览器察觉到了证书的异常。因为浏览器一开始就知道自己需要连接的主机是www.baidu.com,我们虽然通过网络劫持的方式让浏览器以为我们的服务器A就是www.baidu.com,然而服务器A却没有www.baidu.com的证书,使用的是自签的证书,前面也提到过浏览器会进行4步验证。最后发现我们证书签发的域名不是www.baidu.com,自然就知道了当前网络的风险,然后阻止本次访问。

       但是可以发现用户依然能选择"继续转到网页(不推荐)"。如果我们使用Chrome浏览器会是这样的:

      Chrome明显对HSTS处理更为出色。因为对于已经开启严格安全传输HSTS的www.baidu.com,浏览器发现证书错误后,Chrome的做法是强制禁止访问。

    5、总结

      上述中间人攻击实践中使用到了Fiddler及Burpsuite仅是为了方便控制及调试中间人攻击的状态,实际操作中并不需要Fiddler,也就是说你的手机不需要连接任何代理,因为往往流量的劫持发生在更隐蔽的网络节点中,如链路中的网络设备完全可以在无感的情况下将经过自己的流量转发到中间人服务器,或者这种劫持也可能由DNS解析引起。事实上ARP投毒,WPAD劫持,DNS欺骗,BGP路由劫持,都会为这种中间人攻击创造条件。

       补充:我偶尔发现有的APP应用层使用的并非HTTP协议。比如微信和QQ,应用层使用的就不是HTTP协议,而是其私有的协议,这种情况需要使用其它的抓包工具从传输层分析,比如Packet Capture这种直接解析TCP/UDP协议的,但是往往非HTTP协议的数据包即使抓到了也无法解析出来,因为大概率都是二进制而非文本格式的。比如QQ应用层是腾讯私有协议,传输层是TCP和UDP混用,而且做了加固防止反编译等等,安全性极高。

       最后,针对HTTPS的中间人攻击,是建立在开发者没有正确的对证书进行校验的前提下。在这种证书校验不严格的前提下才能实施MITM攻击,如果证书校验严格的话,从理论上来讲是无法攻击的。网上那些教程,像利用ettercap或者bettercap进行中间人攻击,全部是针对HTTP协议的,但是他们普遍没有说明这一点。像这样的:

    这种方法对于HTTPS是无效的,所以这里提醒小伙伴们,做实验时如果发现没有成功,可以找个HTTP的网站试试。

       与本篇内容相关的资料在公众号"极客随想"内回复消息:内网渗透,即可获取。公众号不定期分享一些经验和干货,欢迎关注。

    在这里插入图片描述

    展开全文
  • 什么会有这么多中间表?

    千次阅读 2021-03-03 19:41:43
    什么中间表会越来越多?中间表会给项目组带来什么样的困扰,如何解决这些困扰?这里我们就尝试探讨一下这个问题。中间表出现的典型场景主要有三个:一步算不出来。数据库中的原始数据表要经过复杂计算,才能在报表...

    d4151c2cbbe7

    中间表的由来

    中间表是数据库中专门存放中间计算结果的数据表。报表系统中的中间表是普遍存在的。那么,这些中间表是如何出现的?为什么中间表会越来越多?中间表会给项目组带来什么样的困扰,如何解决这些困扰?这里我们就尝试探讨一下这个问题。

    中间表出现的典型场景主要有三个:

    一步算不出来。数据库中的原始数据表要经过复杂计算,才能在报表上展现出来。一个 SQL 很难实现这样的复杂计算。要连续多个 SQL 实现,前面的生成中间表给后边的 SQL 使用。

    实时计算等待时间过长。因为数据量大或者计算复杂,报表用户等待时间太长。所以要每天晚上跑批量任务,把数据计算好之后存入中间表。报表用户基于中间表查询就会快很多。

    多样性数据源参加计算。来自于文件、NOSQL、Web service 等的外部数据,需要与数据库内数据进行混合计算时,传统办法只能导入数据库形成中间表。

    中间表带来的问题

    在一个运营商的报表系统中,我们发现了一个让人吃惊的现象。在 DB2 数据仓库中,有两万多个数据库表!经过深入了解发现,真正的原始数据表只有几百张,剩下的大量的数据库表都是为查询和报表服务的中间表。

    经过几年乃至十几年的运行,数据库中的中间表越来越多,甚至出现这个项目中上万个的情况。大量中间表带来的直接困扰是数据库存储空间不够用,面临频繁的扩容需求。中间表对应的存储过程、触发器等等需要占用数据库的计算资源,也会造成数据库的扩容压力。

    那么,是不是可以清理掉一些不用的中间表?一般的结论都是:搞不动。数据库中的中间表是不同程序员制作的,有的是综合查询系统使用,有的是报表系统使用。中间表之间还存在交叉引用,有些程序员看到有别人生成的中间表就直接使用了。有时候一些查询报表已经废弃不用了,但是对应的中间表没人敢删,因为不知道删掉之后会影响其他什么查询或者报表。

    很多情况下,项目组只好为了越来越多的中间表去扩容数据库。但是数据库的扩容成本太昂贵了:不管是换更强的服务器(纵向扩容),还是增加数据库服务器的节点(横向扩容),都不便宜。过于频繁的扩容让项目组非常头疼。

    那么,能不能把中间表导出到文件中,从而减轻数据库的压力呢?这个办法初看挺好,但是有个问题始终无法解决。例如:每天晚上把经营分析表数据生成好之后放到文件中,第二天上班的时候发现,业务人员还要对经营分析表按照各种条件过滤,或者按照各种维度分组。因为文件本身是没有计算能力的,一旦把中间表从数据库中导出成文件就很难进一步计算了。不得已,只能把中间表继续留在数据库中。

    解决问题的办法

    采用润乾集算器实现文件计算,就可以把中间表从库中迁移到文件系统中了。采用集算器的前后对比图如下:

    d4151c2cbbe7

    在集算器结构中,数据库的大量中间表都移到了库外,数据库仅仅存储少量原始数据表,压力就小了很多。针对这些中间表实现的多个 ETL 存储过程、触发器、复杂 SQL 也都由集算器来实现,数据库的计算压力也变小了很多。虽然计算和存储压力由应用服务器来承担,但是成本还是要比数据库服务器低很多。项目组不用再每隔一段时间就申请数据库服务器扩容了。

    同时,集算器可以读取多样性数据源,直接参与混合计算。无需再导入数据库,成为中间表。

    集算器编程很容易

    移到库外的数据文件不能再使用 SQL 计算了,换成集算器会不会增加编写的难度呢?实际上,集算器编写简单计算脚本的时候和 SQL 差不多,复杂多步骤计算还要比 SQL 容易。例如:

    读取文件

    d4151c2cbbe7

    实现过滤

    d4151c2cbbe7

    分组汇总

    d4151c2cbbe7

    从上述例子来看,采用集算器实现数据文件库外计算,学习成本很低,很容易掌握。

    新方案的价值

    新方案的价值还不仅仅是降低数据库的压力。

    对于报表应用而言,中间数据的存在是有价值的:有些中间表是报表业务决定的,有些是为了弥补现有技术的不足。也就是说,中间数据和报表模板一样,都是报表系统的一部分。所以,集算器的方案并没有让中间数据消失,只是移到了库外,保存在报表应用的文件目录中,使得中间表在物理上也成为了报表应用系统的一部分。这样既能发挥中间数据的价值,还可以让中间数据和报表系统的其他部分一起管理。显然,文件系统的树形目录结构比数据库混在一起的几万个表要更容易维护。

    在实际项目中,可以给中间数据文件建立多层文件夹存储。例如:第一层目录是财务管理、人力资源、ERP 等等。人力资源又有子目录:工资管理,基本信息,党员信息等等。目录可以细化到某个报表,如果该报表发生了变化,只需要调整这个目录中的报表模板或者数据文件即可。如果该报表废弃不用,那么删掉或者移走报表所在目录,就可以快速的释放硬盘空间。

    从计算速度来说,由于文件更底层,更接近于磁盘,IO 性能要好于数据库。所以集算器的方案可以为报表系统带来更快的性能。

    报表数据来自于多样性数据源时,还可以有更好的实时性,不像传统手段时只能定期入库。

    展开全文
  • 就会使用广播的方式发送一个ARP请求 目标主机收到请求后会使用单播的方式返回一个ARP响应,告知自己的MAC地址 拿到MAC地址后,会将映射关系缓存到ARP表,而后传递到数据链路层 ARP欺骗 ARP欺骗又叫中间人攻击,...

    网络中的数据传输所依赖的是MAC地址而不是IP地址,ARP协议负责将IP地址转换为MAC地址

    ARP协议工作原理

    ARP协议规定,每台计算机都需要一个ARP表,用来保存IP地址和MAC地址的映射关系

            访问IP地址的时候就去查ARP表,从而找到对应的MAC地址

            如果ARP表中匹配不到,就会使用广播的方式发送一个ARP请求

                    目标主机收到请求后会使用单播的方式返回一个ARP响应,告知自己的MAC地址

            拿到MAC地址后,会将映射关系缓存到ARP表,而后传递到数据链路层

    ARP欺骗

    ARP欺骗又叫中间人攻击,ARP协议在解析IP地址时,并不会验证目标主机的身份,攻击者把自己的MAC地址伪造成目标地址来欺骗受害者,从而截取或修改数据包,控制目标主机

    展开全文
  • 随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端是引发企业安全问题的高危据点。在移动互联网时代,特别是前端人员除了传统的 XSS、CSRF 等安全问题之外,时常遭遇网络劫持、非法...
  • 1、基础知识1.1 对称加密算法对称加密算法的特点是加密密钥和解密密钥是同一把密钥K,且加解密速度快,...一个自己保留,不能让其他知道,私钥。这样就能比较好的解决信息传递的安全性,相对来说加解密速度较...
  • 展开全部莫西干发型。32313133353236313431303231363533e58685e5aeb931333431356637莫西干是北美地区的一个印第安民族,居住在哈得逊河流域上游的卡兹奇(Catskill)山脉。...两边低中间立起来的发型英文对应的是M...
  • 什么叫前端?

    2021-01-26 16:38:03
    当我们在浏览器中输入网址并按回车之后,接下来会发生什么? 我们来简单地看一看 “网页展现” 的整个过程。 比如这里有一个用户,它需要访问abc.com这个网址。一般来说,当用户输入一个域名时,是在请求一个 HTML ...
  • 识人核心是什么?

    2021-01-13 02:11:38
    视其所以,观其所由,察其所安,焉廋哉?焉廋哉!这是《论语》中为政篇的一句,就是识人的核心所在。下面引用南怀瑾先生在《论语别裁》中的讲解:这是孔子观察的道理。讲到观察的道理,我们都知道看相算命,...
  • 物理层使用的中间设备 转发器 数据链路层使用的中间设备 网桥 网络层使用的中间设备 路由器 在网络层以上使用的中间设备 网关 转发器  转发器(Repeater)被称为中继器或放大器,执行物理层协议,负责...
  • 捕梦网源自18世纪,印第安会用它来捕获美丽的梦幻,让恶梦随清晨的阳光而消逝,他们相信夜晚的空气中充满着各种的梦幻,只有捕梦网能将梦过滤,把他们带入美丽的梦乡。 捕梦网传统的捕梦网是用树枝编成一个圆圈...
  • 展开全部 双白虚线画于路口时,作为减速让行线;画于路段中时,作为行车方向随时间改变e68a8462616964757a686964616f31333433623139之可...高速公路车距确认标线作用为,见此标线时,驾驶应与前车保持行车安全距离。
  • 作者:座头鲸右边的蕊妮 ...来源:知乎 ...你要有不断反思进取的能力 - 所有都能从你这看到进化的希望。 有了上述三点,你离成为管理者就不太远了。而这三点,分别对应我下面讲的:闭环、Think B..
  • 说了这么多,苹果 ~ 安卓 ~ 鸿蒙,每个的爱好都不一样,自己喜欢什么什么,不要道德绑架别人,也不要难为自己! HarmonyOS,你一定可以成为最靓的仔! 往期推荐 ☞ 五一,颓废了! ☞ 迟来的 2020 年度总结 ...
  • 《道德经》真的是一本曲高和寡的经典吗?它所提倡的“无为”是否就是什么都不做?它对我们的意义真的足够大吗? 本书作者以通俗易懂的语言,条分缕析地为我们还原《道德经》的本来面目。在他的阐释之下...
  • 小白 也能听懂Hadoop到底是什么

    千次阅读 2021-03-01 08:48:11
    我的朋友小扬 在看 某老师的视频 ,他刚开始看的时候,查找没什么难度,一般利用搜索引擎下载下来,然后放在磁盘里, 双击就可以播放,但后面看的老师越来越多,于是整个资源也就越来越来,加上,小扬是个怀旧的,...
  • 一、什么是数组?...大家认识了什么叫数 组之后,我们再来讨论数组的概念什么。我现在用代码的方式该大家解答,相信大家看了我的 讲解后,一定会搞明白。 这是一个数组,我们打印时只需要打...
  • 什么是HSE? HSE是什么

    千次阅读 2020-12-24 14:15:47
    对HSE一无所知的问:什么是HSE? 整天泡在HSE的想:HSE是什么什么是HSE?HSE是Health(健康)、Safety(安全)、Environment(环境)的英文缩写。不同的地方不同的单位,可能对这几个英文词的排序不同,所以有时侯,...
  • 第一章 对象的概念 计算机革命起源机器。编程语言就像是那台机器。它不仅是我们思维放大的工具与另一种表达媒介,更像是我们思想的一...这里的“类型”意思是:抽象的内容是什么?汇编语言是对底层机器的轻微抽象。接
  • 平行线的10种画法(什么叫平行线)

    千次阅读 2020-12-19 01:47:19
    什么叫平行线_如何看k线炒股简单实用的k线炒股方法有哪些 成交量是研判行情的最重要因素之一。成交总值持续扩大,表示新资金不断涌入股市,是推动股价上涨的原动力。因此K线图结合成交量可以更合理地判断K线的趋势...
  • 我们程序员,即便做到CTO,也远没有到拼才华的时候,即使吹上天,也不过是普通,一些看起来比我们牛逼的人物,只不过在别人选择安逸的时候,他选择了拼搏而已。 我也一样,曾几何时,我也是2500一个月都找不到...
  • 电脑主板是什么

    2021-07-16 03:09:16
    电脑主板是什么认识主板 什么是电脑主板?就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕业生考试网!主板称系统主板或母板,表面看上去就是一块电路板,用来控制和驱动整个机器,是微机...
  • 相信大家应该对我不太熟悉,我牧小农,是一位智慧才华美貌都达到登峰造极。。。。。。。。
  • 什么是编译1、利用编译程序从源语言编写的源程序产生目标程序的过程。2、用编译程序产生目标程序的动作。编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的...
  • ▼ 关注「Flink 中文社区」,获取更多技术干货▼你在被窝里刷手机岁月静好,一个 “神秘引擎” 却在远方和时间赛跑文 | 史中“时间就是金钱,效率就是生命。”1981 年,一群年轻用...
  • 阅读本文大概需要 1.69 分钟。昨晚直播的时候提到说,突然间知道一个全网有五百万粉丝的球友,没想到是三年老球友,翻了记录,以前居然问过我关于被公司优化的问题,很是感慨,有些,三年的成长...
  • 我认为实体店不会灭亡,虽然这几年看到好多沿街商铺都关门了,但这只是一部分,这一部分为什么会倒闭; 一,是不断上涨的店租金和人工成本的上升; 二,网络电商价格越来越透明化,这时期出现了很多工厂店,价格...
  • 什么是散列? 散列表,Hash Table,用数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一种扩展,由数组演化而来。 假如有89名候选参加大选。为了方便记录投票,每个候选胸前会贴上自己的参赛号码...
  • 内容导航:Q1:连续涨停后中途打开...具体手法是:庄家拉到涨停板,以大笔买单吸引跟进,然后在涨停价上封几十万的买单,但买单封得不 大。于是短线跟风盘蜂拥而来,累积出大量的跟风盘。然后庄家就把自己的买单...
  • 货币政策,美联储双叒加息了,对我们的生活有什么影响? 今日凌晨,美联储宣布加息 25 个基点,这是今年的第 2 次加息动作,而且预计今年可能还会进行 2 次加息。去年一年,美联储加息 3 次,全球已经进入货币...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 151,931
精华内容 60,772
关键字:

中间人又叫什么