如何对单体应用的 api 进行恶意访问的防范 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
mensa23
V2EX    程序员

如何对单体应用的 api 进行恶意访问的防范

  •  
  •   mensa23 2021-03-12 17:14:08 +08:00 2550 次点击
    这是一个创建于 1691 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果某一个已获授权的用户对 api 进行恶意访问,比如使用脚本超高频率的访问某一个 GET 请求,影响服务器性能,类似这类请求,微服务架构的话可以在 gateway 中写相关的 filter 逻辑,那么单体应用有哪些方法可以防范这类情况?

    16 条回复    2021-03-15 16:17:04 +08:00
    JustLookBy
        1
    JustLookBy  
       2021-03-12 17:32:00 +08:00
    这种运维方面的一般交给云 来处理。。
    opengps
        2
    opengps  
       2021-03-12 17:40:55 +08:00
    如果用程序解决的话,那么就是在接口那里加一个缓存统计了,用来限制访问频率
    eason1874
        3
    eason1874  
       2021-03-12 17:42:09 +08:00
    不能配置个 Nginx 作网关吗,在应用内处理不太科学
    hehe12980
        4
    hehe12980  
       2021-03-12 17:46:03 +08:00
    对授权用户进行 ip 接口调用频次限制不就行了么
    SWBMESSI
        5
    SWBMESSI  
       2021-03-12 17:48:58 +08:00
    可以 Nginx 配置一下,要真的还有其他类似需求的话上个 waf 好了
    xuanbg
        6
    xuanbg  
       2021-03-12 20:54:34 +08:00
    单体也能加 filter 啊。
    leeg810312
        7
    leeg810312  
       2021-03-12 21:07:02+08:00 via Android
    不借助其他组件,那么在应用内用限流,通常是 AOP 或请求处理中间件的开发模式,判断单一来源请求数在一个时间范围内超过阈值就中断后续处理,直接返回 HTTP 响应码 403
    abcbuzhiming
        8
    abcbuzhiming  
       2021-03-14 10:21:42 +08:00
    限流,绝大部分服务使用人数一多,就会有恶意用户,无论你愿不愿意,此时限流框架是必须的。不过服务使用量还没起来前,就没必要那么讲究了
    abersheeran
        9
    abersheeran  
       2021-03-14 12:39:03 +08:00 via Android
    @leeg810312 限流应该用 429……你这 403 太秀了
    DoctorCat
        10
    DoctorCat  
       2021-03-14 16:55:02 +08:00
    使用 WAF 或 CC 防护解决方案
    leeg810312
        11
    leeg810312  
       2021-03-14 17:25:59 +08:00 via Android
    @abersheeran 我个人觉得 429 是对善意使用的响应,对于恶意访问这响应的含义太温和了,retry-after 都不能给
    zhao372716335
        12
    zhao372716335  
       2021-03-14 19:39:35 +08:00
    对 api 的再单位时间内的访问次数做限制

    譬如一分钟最多访问 30 次! 譬如 yii2 的 restful: https://www.yiichina.com/doc/guide/2.0/rest-rate-limiting
    abersheeran
        13
    abersheeran  
       2021-03-14 21:36:05 +08:00
    @leeg810312 恶意访问直接 reset connection……
    wakzz
        14
    wakzz  
       2021-03-15 09:20:31 +08:00
    请求拦截由网关处理,微服务不做拦截,各司其职
    ch2
        15
    ch2  
       2021-03-15 11:16:22 +08:00
    flask-limit,恶劣的让 nginx 直接拉黑
    mensa23
        16
    mensa23  
    OP
       2021-03-15 16:17:04 +08:00
    感谢各位答疑解惑~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1604 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 16:23 PVG 00:23 LAX 09:23 JFK 12:23
    Do have faith in what you're doing.
    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