<p class="ql-block">防火墙可以根据包的起点和终点来判断是否允许其通过,但仅凭起点和终点并不能筛选出所有有风险的包。(包:网络包)</p> <p class="ql-block">比如,假设Web服务器在收到含有特定数据的包时会引起宕机。</p><p class="ql-block">但是防火墙只关心包的起点和终点,因此即便包中含有特定数据,防火墙也无法发现,于是包就被放行了。</p> <p class="ql-block">然后,当包到达Web服务器时,就会引发服务器宕机。</p><p class="ql-block">通过这个例子大家可以看出,只有检查包的内容才能识别这种风险,因此防火墙对这种情况无能为力。</p> <p class="ql-block">要应对这种情况有两种方法。这个问题的根源在于Web服务器程序的Bug,因此修复Bug防止宕机就是其中一种方法。</p><p class="ql-block">这类Bug中,危险性较高的会作为安全漏洞公布出来,开发者会很快发布修复了Bug的新版本,因此持续关注安全漏洞信息并更新软件的版本是非常重要的。</p> <p class="ql-block">另一种方法就是在防火墙之外部署用来检查包的内容并阻止有害包的设备或软件。</p><p class="ql-block">当然,即便是采用这种方法也并不是完美无缺的,因为包的内容是否有风险,是由Web服务器有没有Bug决定的。</p> <p class="ql-block">因此当服务器程序中有潜在的Bug并且尚未被发现时,我们也无法判断包中的风险,也无法阻止这样的包。</p><p class="ql-block">也就是说,我们无法抵御未知的风险。</p> <p class="ql-block">从这一点来看,这种方法和直接修复Bug的方法是基本等效的。</p><p class="ql-block">但如果服务器数量较多,更新软件版本需要花费一定的时间,或者容易忘记更新软件,这时对包的内容进行检查就会比较有效。</p>