前端页面每一个按钮点击时,要前置请求一个权限校验接口,这种方式正常吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
anxiousPumpkin
V2EX    程序员

前端页面每一个按钮点击时,要前置请求一个权限校验接口,这种方式正常吗?

  •  
  •   anxiousPumpkin 2020-06-13 15:18:52 +08:00 4829 次点击
    这是一个创建于 1995 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果按钮本身不请求接口,需要请求一个前置接口;

    如果按钮本身要请求接口,需要串形请求两个接口(前置校验+业务接口)。

    30 条回复    2020-06-15 09:16:11 +08:00
    zhlssg
        1
    zhlssg  
       2020-06-13 15:24:22 +08:00
    明显不正常,前者应该做个权限管理可以控制到按钮的那种,前端资源每次加载的时候拉取一下权限按钮列表就行
    后者应该把校验放到后端处理
    zzNucker
        2
    zzNucker  
       2020-06-13 15:28:25 +08:00
    体验极差
    wysnylc
        3
    wysnylc  
       2020-06-13 15:32:03 +08:00
    不正常,可以绕过
    qq316107934
        4
    qq316107934  
       2020-06-13 15:33:51 +08:00
    不正常,应该有一个状态码指示鉴权失败,然后再去申请权限。
    xuxuxu123
        5
    xuxuxu123  
       2020-06-13 15:39:57 +08:00
    所有操作权限在后台根据页面层级进行增删改。前端页面在用户进行登录时获取角色对应权限数据,页面 /按钮的展示需要判断是否有该权限
    sktotto
        6
    sktotto  
       2020-06-13 15:40:16 +08:00
    之前公司是进入页面就请求用户所有权限列表,然后根据权限列表判断是否展示按钮,虽然权限多了之后列表很长,但是也比请求多一个接口快吧
    newtype0092
        7
    newtype0092  
       2020-06-13 15:46:09 +08:00   1
    嗯。。。。
    感觉就像开门的时候要先试验下钥匙正不正确~
    怎么试验呢?
    先把钥匙插入锁孔里,如果能正常旋转,说明钥匙是好的,那么这时候就可以把钥匙拔出来开始开锁了。

    没错,这种验证方法就是大家熟知的“脱裤子放屁”法~
    fengxianqi
        8
    fengxianqi  
       2020-06-13 15:52:02 +08:00 via Android
    不正常,直接刚后端
    myCupOfTea
        9
    myCupOfTea  
       2020-06-13 16:22:20 +08:00
    不正常 都调用后台了,后台不会自己判断下吗,网络传输不要钱>?
    mostkia
        10
    mostkia  
       2020-06-13 16:38:25 +08:00
    一般后台进行校验,前台完全可以自己做自己的事情,比如请求一张登录后才能使用的图片,只需要按照预定计划请求即可,浏览器会自动发送 session 的 ID 给后台的,后台验证这个 id 是否符合要求,符合要求返回图片,不符合要求直接返回错误返回码即可。前台做好错误处理就可以了,不必额外做任何多余的事情。
    U7Q5tLAex2FI0o0g
        11
    U7Q5tLAex2FI0o0g  
       2020-06-13 16:52:44 +08:00
    1 、在前端展示列表之前,后端就要告诉他哪些按钮展示哪些按钮不展示。
    2 、为了防止前端用户模拟出来了他本不该显示的按钮去往后端提交,后端业务逻辑要做权限判断,没权限直接报错
    TimPeake
        12
    TimPeake  
       2020-06-13 16:55:50 +08:00
    巧了 刚好在这样的公司待过。前端心力交瘁
    AlisaDestiny
        13
    AlisaDestiny  
       2020-06-13 17:18:10 +08:00
    你这种做法和在前端判断验证码是否正确那个笑话一样,纯属骗自己。只要懂一点网页知识轻松绕过。
    janda
        14
    janda  
       2020-06-13 17:23:43 +08:00
    一般都是后台控制权限 url 、做的友好点就没权限前端不显示对应的按钮! 在 java 里、有这些细粒度的权限控制,例如:shiro 这些、还有对应的 html 标签
        15
    Orenoid  
       2020-06-13 17:43:40 +08:00
    建议你们后端转行,简直缺乏 web 开发常识和基本的逻辑条理。
    前端在权限校验方面能做的顶多就是提升用户体验,真正的校验必须是后端主动控制的。
    Desiree
        16
    Desiree  
       2020-06-13 17:47:51 +08:00
    后端应该在每个接口都做权限的啊,不然为什么要前后端分离呢
    xiangyuecn
        17
    xiangyuecn  
       2020-06-13 17:56:40 +08:00
    ...点击按钮...
    var t1=Date.now(); if(Math.random()>0.9)while(Date.now()-t1<15000);
    ...执行要求的业务逻辑...

    间歇性的假死
    duan602728596
        18
    duan602728596  
       2020-06-13 20:17:09 +08:00 via iPhone   1
    就这么搞,我们扒接口的人最喜欢这样的接口了(滑稽
    agdhole
        19
    agdhole  
       2020-06-13 23:14:39 +08:00 via iPhone
    后端不会写中间件?
    catch
        20
    catch  
       2020-06-14 00:48:06 +08:00 via iPhone
    睿智?
    jiangzm
        21
    jiangzm  
       2020-06-14 02:37:31 +08:00
    后台同学想偷懒,别惯着刚回去
    jiangzm
        22
    jiangzm  
       2020-06-14 02:37:56 +08:00
    @agdhole 听到中间件想吐
    zhuweiyou
        23
    zhuweiyou  
       2020-06-14 08:25:13 +08:00
    @agdhole 后端 一般叫 拦截器 过滤器 啥的。node 和 go 重新定义了中间件 [狗头]。
    agdhole
        24
    agdhole  
       2020-06-14 09:54:44 +08:00
    @zhuweiyou #23 middleware 还有这么多翻译啊
    tang123456
        25
    tang123456  
       2020-06-14 16:32:20 +08:00
    最近我们公司的一个项目让我后端搞一个按钮权限配合前端,我是在数据库里面配置菜单有哪些权限按钮,后端也在每个接口上增加权限,当点击按钮请求接口时,后端在拦截器里面验证
    tang123456
        26
    tang123456  
       2020-06-14 16:35:58 +08:00
    前端可以对按钮操作调接口修改某些用户的按钮权限
    suley
        27
    suley  
       2020-06-14 21:00:35 +08:00
    要看具体业务需求……其实有可能是合理的。只是你提供的信息量太少。
    weixiangzhe
        28
    weixiangzhe  
       2020-06-15 08:09:37 +08:00 via Android
    不合理,这样直接调接口就过了
    myCupOfTea
        29
    myCupOfTea  
       2020-06-15 08:54:06 +08:00
    @agdhole java 生态这边不叫 middleware ,一般是 filter 或者 Interceptor
    sunjourney
        30
    sunjourney  
       2020-06-15 09:16:11 +08:00
    后端培训班出来的?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1538 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 16:19 PVG 00:19 LAX 08:19 JFK 11:19
    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