• 什么是哈希洪水攻击(HashFlooding Attack)?


    点击蓝色“五分钟学算法”关注我哟

    加个“星标”,一起学算法640

    作者:邱昊宇

    原文:https://www.zhihu.com/question/286529973

    声明:已获邱昊宇授权转载至公众号「五分钟学算法」


    你开了一家菜鸟驿站,代收周围几百个小区的所有包裹。因为每天的包裹量很大,如何在取件人到来时快速找出他想要的包裹就成了很重要的问题。

    正巧,开菜鸟驿站前你是个程序员,于是很自然就想到可以把包裹按照收件人的手机尾号进行堆放。只要以倒数第二位作为货架号、倒数第一位作为层号就可以了。比如手机尾号 24 的取件人的包裹就应该放在二号货架的第四层。

    你家的菜鸟驿站开张了,生意很好,货架也够用。双十一期间虽然包裹多、货架上放不下,但问题不大,货架上放不下就堆在对应货架前的地上:二号货架第四层找不到包裹,就在二号货架前地上的包裹堆里找就可以了。特殊时期特殊对待,大家都是街坊,可以理解。

    隔壁吴老二从小和你不对付,听说你赚了钱就气得浑身发抖。他摸清楚你是按照手机尾号放快递之后就想了个法子,特意去营业厅挑了一堆以 2X 结尾的手机号,每天从淘宝上买些不值钱又占地方的玩意儿寄到菜鸟驿站。于是二号货架常年是满的,货架前也常年堆着一堆包裹。别人的包裹都很快可以找到,耗费不到一分钟;而凡是手机尾号是 2X 的居民就都倒了血霉了,货架上基本没法找到,得去快件堆里一个个翻,每次不花个五六分钟别想找到包裹。这要是店里人手不够,尾号非 2X 的人还排队排在几个 2X 尾号的人后面取件,那酸爽……反正从此以后,吐槽源源不断,你的生意也一天不如一天了。

    小区里有个产品经理朋友建议你可以多加个货架专门处理二号货架爆仓的情况,但你清楚地知道这样的特殊处理是治标不治本的。问题的根本是只要有人知道你是按照手机尾号放置包裹的,就可以用很小的成本「构造」包裹,让特定手机尾号的包裹像洪水般涌来(嗯,此处点题),降低你店里的工作效率,达到攻击的目的。

    所以解决方法也就很明显了:不要让取件人可以轻易猜到你是如何放置包裹的

    在苦思冥想一周无果之后,你打听了一下,才发现隔壁村的菜鸟驿站居然是用现成的管理系统的。包裹入站时系统直接生成取件码,取件码均匀分散到货架层数,比如 1-2-1234 表示这是本驿站收到的第 1234 个包裹,应该放在一号货架第二层。这样取件人就没法通过构造特定的包裹进行攻击了。

    你恍然大悟,然后把手边的《编程珠玑》给扔了。

    END

    640?wx_fmt=png

     原 创 热 文 推 荐 


    毕业十年后,我忍不住出了一份程序员的高考试卷

    一道腾讯面试题:厉害了我的杯

    十大经典排序算法动画与解析,看我就够了

    这或许是东半球分析十大排序算法最好的一篇文章

    面试官,我会写二分查找法!对,没有 bug 的那种!


    640?wx_fmt=png 你点的每个“在看”,我都认真当成了喜欢
  • 相关阅读:
    在IDEA通过Maven构建Scala项目
    6.Pair RDD操作
    5.RDD的Action操作和持久化persist()
    29.Spark SQL发展史
    AirFlow初始化的时候遇到 Global variable explicit_defaults_for_timestamp needs to be on (1) for mysql
    4.RDD操作之Transform
    3.RDD详解和创建RDD方式
    28.Spark中action的介绍
    2.Spark 2.x 集群部署和测试
    Repeater分页
  • 原文地址:https://www.cnblogs.com/csnd/p/16675344.html
Copyright © 2020-2023  润新知