【问题标题】:Security Attack on data url in html对html中数据url的安全攻击
【发布时间】:2020-11-03 17:04:28
【问题描述】:
<a href="#recommend_tab" id="vendors_reco" role="tab" data-toggle="tab" data-url="/my/plan/getvendors/{{id}}/" aria-expanded="true">

我在 html 中使用上面的代码,它是一个遗留代码,我如何防止安全攻击,因为攻击者可以替换 id = 中的值,比如 1647353 并获取另一个查询的结果。

请指教

【问题讨论】:

    标签: javascript html security hackage


    【解决方案1】:

    您面临的问题被命名为“不安全的直接对象引用”。这是一条我非常同意的好消息:https://blog.detectify.com/2016/05/25/owasp-top-10-insecure-direct-object-reference-4/

    我不同意这个问题只有一种解决方案。有两个:

    1. 您可以通过执行身份验证和授权来确保引用的安全
    2. 您使引用间接且难以猜测(就像 youtube 对链接所做的那样)

    【讨论】:

    • 我会说 2 是安全的 obscurity ,因为“难以”猜测,从攻击者的角度来看并不是真的“难以”猜测。
    • 我生成了一个随机的 4 型 UUID,我手里拿着它。现在尝试猜测这 128 位的熵。
    • 仔细想想,UUID 比用于身份验证和授权的密码具有更多的熵。
    • 如果你发送那 128 位熵,那么我可以访问数据。它很容易共享……而且一旦知道,它就不会失效,除非你重新计算所有对象引用……如果你有数十亿个对象,这不是一件容易的事。无需重新计算对象引用即可轻松撤销身份验证和授权。您当然可以在一个解决方案中同时使用 1 和 2,但 2 不是一个独立的解决方案。
    • 嗯,这就是您使用间接引用的目的 - 用于共享内容。是的,你不应该不考虑一两分钟就这样做。
    猜你喜欢
    • 2019-04-28
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多