V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
anxiousPumpkin
V2EX  ›  程序员

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

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

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

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

    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 是否符合要求,符合要求返回图片,不符合要求直接返回错误返回码即可。前台做好错误处理就可以了,不必额外做任何多余的事情。
    littleylv
        11
    littleylv  
       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 标签
    Orenoid
        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   ·   实用小工具   ·   1013 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:50 · PVG 04:50 · LAX 12:50 · JFK 15:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.