nginx 代理 s3 请求时,如何在 nginx 添加 s3 签名认证,防止未认证用户并发上传文件,导致内存爆掉 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bruceliang
V2EX    NGINX

nginx 代理 s3 请求时,如何在 nginx 添加 s3 签名认证,防止未认证用户并发上传文件,导致内存爆掉

  •  
  •   bruceliang 2019-10-28 18:39:02 +08:00 3741 次点击
    这是一个创建于 2250 天前的主题,其中的信息可能已经有所发展或是发生改变。
    11 条回复    2019-10-31 15:10:35 +08:00
    janxin
        1
    janxin  
       2019-10-28 18:45:25 +08:00
    未认证用户指哪些人? S3 没认证的还是什么样的?
    fredcc
        2
    fredcc  
       2019-10-28 18:55:56 +08:00 via Android
    终端用户获取临时权限上传到 s3 有官方例子,问题是 nginx 是怎么多出来的
    bruceliang
        3
    bruceliang  
    OP
       2019-10-28 18:57:29 +08:00
    其实就是防止用户恶意访问
    bruceliang
        4
    bruceliang  
    OP
       2019-10-28 18:58:44 +08:00
    我们用的 ceph,nginx 代理 ceph s3
    bruceliang
        5
    bruceliang  
    OP
       2019-10-28 19:00:49 +08:00
    如果未携带 s3 签名或者未携带签名的用户大量上传文件到 nginx 是不是会导致 nginx 宕机
    eason1874
        6
    eason1874  
       2019-10-28 19:28:47 +08:00
    Nginx 鉴权我都是用 ngx_lua 模块,各种哈希算法都有现成函数可以用,简单好用,性能也好。

    连接: https://github.com/openresty/lua-nginx-module
    Firxiao
        7
    Firxiao  
       2019-10-28 22:17:22 +08:00
    不会的。如果是后端服务器做鉴权,这个连接就被拒绝了。不可能上传成功的。防止用户恶意访问可以写个监控脚本检测 ip 连接数,超过多少封掉。或者用 iptable 来限制单个 ip 最大连接数。
    DavidWei
        8
    DavidWei  
       2019-10-29 07:09:26 +08:00 via iPhone
    s3 有 presinedurl 上传方式,为啥需要再代理一次?换个思路,你控制签名的下发就好了
    bruceliang
        9
    bruceliang  
    OP
       2019-10-29 15:54:01 +08:00
    @Firxiao 文件上传,nginx 服务器会先缓存在 nginx 服务器,然后转发到后端服务器的
    bruceliang
        10
    bruceliang  
    OP
       2019-10-29 16:26:30 +08:00
    如果数据全部缓存到内存,内存可能会撑爆;如果全部放硬盘,硬盘可能会撑爆
    Firxiao
        11
    Firxiao  
       2019-10-31 15:10:35 +08:00
    @bruceliang s3 的标准认证第一步是鉴权 只有鉴权通过才可以上传. 你说的这个情况应该是可以直接接受 put 操作的应用. 建议你做下相关测试, 从日志里面分析下. FYI 并深入了解下 s3 的鉴权机制.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1115 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 17:55 PVG 01:55 LAX 09:55 JFK 12:55
    Do have faith in what you're doing.
    /div> ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86