V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dLvsYgJ8fiP8TGYU
V2EX  ›  信息安全

通过验证 URL 中类似 token 的字段 (如 https://domain.com/[TOKEN]/file.txt) 能在多大程度上避免未经授权的访问?

  •  
  •   dLvsYgJ8fiP8TGYU · 2021-03-30 00:18:32 +08:00 · 2014 次点击
    这是一个创建于 1339 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假设:

    • 服务器可信
    • 中间链路无 MITM 攻击
    • token 长度未知

    潜在攻击者即使知道了在路径的这一处需要输入 token,是否只能通过枚举来尝试访问 file.txt ?

    如果连续两层路径都是 token,如 https://domain.com/[TOKEN1]/[TOKEN2]/file.txt ,是否能够显著提升枚举所需的时间?

    潜在攻击者是否可通过某种方式直接查看目录 tree,然后绕过 token 机制直接访问文件?

    在我的理解里(不知道是否正确),你创建一个名称很长且随机的文件夹,(对于访问者来说)就等效于需要输入 token 才能访问里面的文件了;如果路径输入不对就会 404

    10 条回复    2021-03-30 17:04:39 +08:00
    Jat001
        1
    Jat001  
       2021-03-30 00:25:44 +08:00
    只要你没做任何映射,没开列出目录的功能,没在任何地方泄露这个地址,那么攻击者除了穷举没有别的办法得知这个地址了
    Jat001
        2
    Jat001  
       2021-03-30 00:27:14 +08:00
    不过更安全的办法是 url 里带个会过期的 token,中间做个鉴权,直接访问文件一但路径泄露就没办法了
    LokiSharp
        3
    LokiSharp  
       2021-03-30 00:30:01 +08:00 via iPhone
    header 里加 token 不更好么
    codehz
        4
    codehz  
       2021-03-30 01:20:35 +08:00   ❤️ 1
    列目录的前提是真的存在有目录(
    url 不必真的映射到文件系统上,完全可以只是作为路由参数而已,即使真的映射到文件系统,那也得服务端提供列目录的功能。。。
    0ZXYDDu796nVCFxq
        5
    0ZXYDDu796nVCFxq  
       2021-03-30 01:23:48 +08:00
    1. token 需要管理,比如创建、销毁、验证。建议用成熟的方案
    2. 代码有漏洞或者服务器漏洞可能能绕过 token 验证
    chendy
        6
    chendy  
       2021-03-30 01:26:12 +08:00
    攻击者的目的是什么?遍历文件?绕过权限控制访问文件?
    为什么不考虑常规的权限机制呢?
    ch2
        7
    ch2  
       2021-03-30 02:10:48 +08:00 via iPhone
    cdn 鉴权了解一下,你的这种例子只是一种鉴权方法
    love
        8
    love  
       2021-03-30 06:24:56 +08:00 via Android
    加个标准 http 密码保护就行,还不用担心地址泄露到搜索引擎什么的
    killergun
        9
    killergun  
       2021-03-30 08:09:55 +08:00
    token 有过期且一次性访问
    THESDZ
        10
    THESDZ  
       2021-03-30 17:04:39 +08:00
    oss 对象存储的签名机制
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5778 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 01:43 · PVG 09:43 · LAX 17:43 · JFK 20:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.