V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

校验是改前端写还是后台写?

  •  
  •   sansansan333 · 43 天前 · 3328 次点击
    这是一个创建于 43 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在一家公司已经工作 3 年了。

    刚才头一次感觉和同事有了次冲突...感觉也是相当不爽...

    具体问题是发现后台写接口的越来越松了。刚开始表单数据校验不写,不写就不写吧,前端校验住还能少几次请求,好像确实前台校验好点。现在连能不能改订单状态,能不能修改已经审核通过的信息都靠前台校验了。那还做个毛。只要是个入了门的程序员,一个普通账号在站内为所欲为?觉得很无语,来吐槽....

    是我想多了?没人这么无聊直接跑接口?还是他们越来越懒了。

    第 1 条附言  ·  42 天前
    我有时候都想在自己家网站买买买,简直是太诱惑。哈哈哈哈
    88 回复  |  直到 2018-01-09 15:38:21 +08:00
        1
    sansansan333   43 天前
    也是自己最近有点烦躁,不然又忍住不争了...

    今天是实在不想写了,总感觉和给人擦屁股似的...
        2
    Phariel   43 天前 via Android
    都要写
        3
    tomczhen   43 天前   ♥ 3
    前端校验是为了体验,后端校验是为了安全。

    其实你们只是位置不同,毕竟屁股决定脑袋¯\_(ツ)_/¯
        4
    am241   43 天前 via Android
    这是不怕公司倒闭的节奏啊
        5
    kosilence   43 天前 via iPhone
    都写
        6
    p2pCoder   43 天前
    前后端都用写
        7
    dong3580   43 天前
    他写不写你不用管,你只管你写了就行了。

    ps:好像你遇到的就是我曾经走过的路...
        8
    b821025551b   43 天前
    我就是那种无聊的人:doge:
        9
    sansansan333   43 天前
    @dong3580
    关键是每次发现类似的 bug 能前端解决的,后台绝不动手。

    着里面就有两个问题了。

    第一,我很不爽...。

    第二,只是面子上好了,测试确实测不出来问题了。可是我心里觉得这接口明明就还差的远呢...
        10
    SoulGem   43 天前
    都要写
        11
    toan   43 天前
    都要加
    毫无疑问!
        12
    baiyi   43 天前
    公司的安全测试呢?
        13
    sansansan333   43 天前
    @baiyi 见识少,问一句。这种问题如果前端校验住了。后台没校验。测试应该发现吗?
        14
    baiyi   43 天前
    @sansansan333 #13 功能测试可以通过,但是安全测试一定会发现的
        15
    calming   43 天前
    肯定都得写啊,这不怕公司倒闭吗
        16
    DualWield   43 天前
    多学点东西,这样就可以名正言顺的怼后端了,各种教他做人
        17
    Kilerd   43 天前
    前端为了用户体验,后端为了数据安全。
        18
    SuperMild   43 天前   ♥ 1
    你怼他有什么用,和他上面有权管他的人谈才有用啊。后端需要校验这种事情,没有任何技术基础的人都能听明白,就看你的沟通能力了。除非你在公司里处于技术牛人的地位,否则不要一副得理不饶人的姿态,耐心讲,同时给对方找台阶下,这样的沟通才有效。
        19
    timwei   43 天前
    后端基本不信任前端发来的数据
        20
    sansansan333   43 天前
    @SuperMild 如你所说,沟通过几次,并没有什么卵用... 又不想直接和太高层的人提,总觉得背后说人家不太好... 要直接和高层说这种情况。必然是开大会各种怼。虽然怼完他们肯定乖乖的写...但是感觉着同事是以后别想好好相处了...何况现在公司的后台普遍都这么干...一下得罪一大片...我一个小员工,好像也没必要...

    哎...

    就是来吐槽下发泄一下
        21
    sansansan333   43 天前
    @baiyi
    看到有研究过 jwt 顺便请教个问题可好?

    如果是不同域名之间怎么保存信息?

    虽然没试过,但是肯定 cookie 或者本地数据库啥的能变相做到同步个信息。(之前有看过类似的文章,没存下来),想问的是这样做会不会有安全问题?比较成熟的解决办法又是什么呢?

    对于服务端来说,只要密匙写的一个。解密校验方面应该不会有什么额外的问题吧?

    问题好像有点多,写起来太烦的话就忽略我吧~
        22
    windfarer   43 天前
    后端必写,前端选写
        23
    zn   43 天前
    前段验证提高客户体验。
    后端验证保证数据正确。

    孰轻孰重,你自己考虑考虑。

    PS:
    要是我手下不做后端验证,那他可以打包回家了。
        24
    ys0290   43 天前 via iPhone
    做好自己的事,等到和领导谈到相关安全问题的时候提一下
        25
    oonnnoo   43 天前 via Android
    同前端表示理解。
    不懂技术的领导都会认这是前端的锅
        26
    stanjia   43 天前
    校验 前后端都要写,都要写,都要写
        27
    shd   43 天前
    不是领导,不是相关负责人,为啥管他写不写,自己写了就好,出了问题教他做人
        28
    oonnnoo   43 天前 via Android
    自己前端做好自己的校验,管他的后台,最多提醒一下他好了
        29
    bestkayle   43 天前
    什么公司这么能糊弄。。。
        30
    jason19659   43 天前
    肯定都写啊
        31
    baiyi   43 天前
    @sansansan333 #21 上面的问题,看描述你想说的是 单点登录 吗?

    校验解密说的应该是 jwt 吧,jwt 是没有加密的,它是 base_64 编码,然后使用 hash 签名来保证数据不被篡改
        32
    cocona   43 天前
    如果是 JS 写 cookie 或 localstorage 是不能跨域的,
    我用过的解决方案是嵌 iframe 用 postMessage 通信来同步数据。
        33
    fishliu   43 天前
    我是觉得前后台都要写的,后台是必须要写的吧,前台为了体验也是必要的
        34
    sansansan333   43 天前
    @baiyi
    名词我不太懂 现在想解决的问题是 www.a.com www.b.com c.a.com 全部共享登录状态。
    只要有一个登录过 其他也同步登录状态。
    用 session 已经实现了。但是感觉好麻烦。

    感觉用 jwt 的话 这三套程序只要给前台返回信息的方法和拦截校验的方法完全一样的话 瞬间解决?
    (让这三套程序在初始化跑 js 的时候默认取一下本地是否有其他站放下的信息,有的话直接带上,就算有登录状态了)
        35
    sansansan333   43 天前
    @cocona 谢谢提供思路~
        36
    markyangd   43 天前 via iPhone
    必须前后段都写,不然绕开前端太容易了。
        37
    baiyi   43 天前
    @sansansan333 #34

    嗯,就是单点登录,我不太熟悉,你可以搜下相关的解决方案,应该会有很多

    jwt 解决的不是这个问题
        38
    gejun123456   43 天前 via Android
    前后台都要写,楼主早点撤吧
        39
    loveCoding   43 天前
    建议后端离职...接口默认传递过来的数据不可靠的
        40
    sansansan333   43 天前
    @gejun123456 公司很大哦~只是人们越来越懒了,刚开始不是这样的,慢慢的有点失望~
        41
    sansansan333   43 天前
    @baiyi https://www.v2ex.com/t/405016 根据你说的单点登录 竟然在站内搜到了同类问题 也是巧了~
        42
    singlepig   43 天前
    难道不是都写么??他接口拿到什么都敢往库里存??这样吃枣药丸的。。。如果被抓包了呢?别人随便请求一下就能发现个新大陆,到时候都是他的锅,难不成还能怪你前端没管好用户???
        43
    sensui7   43 天前
    这就是我为何药学后端的原因, 可以直接怼, 要不然以前就会被唬住.
        44
    huangunic0rn   43 天前 via Android
    都写。
    前端防小白。后台防脚本小子。当然最好还有个中间层(比如 waf,防小黑)
        45
    zhouyou457   43 天前 via iPhone
    emm......你是怎么看出他们没做校验的呢?
        46
    zhouyou457   43 天前 via iPhone
    还有就是如果一个普通账号就能漫游贵司的整个系统的话,那就是权限系统的锅了.....
        47
    carakan   43 天前
    双校验吧。。。。后台不校验?什么网站。。。给 v 友们福利福利吧。。。前段不校验。体验会差很多吧。。。
        48
    STillSB   43 天前
    都应该写,别人写不写不用管,自己写了就行了
    用心把自己这块的工作完成的又优雅又安全,出了问题也不慌
        49
    goodryb   43 天前
    争这个有啥用,后台不校验就不校验,出问题责任又不在你
        50
    styang   43 天前
    两边都写的
        51
    dcty   43 天前
        52
    codeeer   43 天前 via iPhone
    怕不是外包公司吧......
        53
    dddd1919   42 天前
    请亮出你们的网站,我要买买买!!!!

    微信就剩一块多零钱了,让我再挥霍一把
        54
    StevenTong   42 天前
    网站贴出来 我们用实际行动来帮你说服领导
        55
    akira   42 天前
    前端限制能不能改订单状态,能不能修改已经审核通过的信息 很正常啊,
    只是后端收到请求的时候也要校验一次就是了。

    你只是做了你的本职工作。
        56
    hvanke   42 天前 via Android
    首先表示赞同前后端都要写。
    疑问是,对于一个复杂的表单,是不是前后端应该约定同样的检验逻辑呢?那这同一套检验的逻辑前后端都写一次,有没有优雅的方式保持一致性呢?
        57
    akira   42 天前
    @hvanke 有啊,js 就是往这个方向努(zuo)力(si)了啊
        58
    bk201   42 天前 via iPhone
    安全方面考虑后端必须校验,体验以及性能方面考虑,如果不是很重要的业务数据,前端简单校验就可以了.
        59
    twoyuan   42 天前   ♥ 1
    validations on FE are for stupid users,
    validations on BE are for malicious users.
        60
    Nitromethane   42 天前
    后端的心真大啊~不但前端要检验,Node 层要校验,API 层同样要校验,这是基本规范。
        61
    WeaPoon   42 天前
    后端不写校验是心有多大,不怕非法利用者吗?不怕数据库出事么...心大.
    个人认为数据的事情应该是后端的事,应该提供校验规则要求给前端做一次校验,防住输入错误的人.
        62
    MushishiXian   42 天前
    至少后端不能少吧
        63
    kamal   42 天前
    你们是不是太顺利了没吃过亏?这种事,是面子问题吗?
        64
    killerv   42 天前
    前端和后端都要校验,前端是为了用户友好,后端是为了安全。完全两码事
        65
    hanxiV2EX   42 天前 via iPhone
    写个安全测试的插件工具,分享给测试。让测试帮忙怼。
        66
    ChristopherWu   42 天前
    前端不做校验,后端是不是无端端多接受了很多无效请求?
    后端不做校验,你是在找死吗?
    横批: 前后都做
        67
    ajan   42 天前
    都要写
        68
    xiaonengshou   42 天前
    前后端都得写,而且必须严格,校验规则也必须一致。然后他不写就是重大事故。。。。要告诉上级的。。。。
        69
    mydns   42 天前
    都得写
        70
    MisakaTao   42 天前 via iPhone
        71
    gdzzzyyy   42 天前
    两边都写。他写不写我不知道,你加个保护对自己也好。最起码出了问题你能马上甩锅。(不是说甩锅
        72
    lifesimple   42 天前
    肯定都要写啊,前端负责交互优化,后端确保安全。毕竟前端验证是可以篡改的。
        73
    Clarencep   42 天前
    LZ 是来找喷的吧 肯定前后台都得做校验
        74
    x86   42 天前
    你也别写验证了,反正出了事是后端的
        75
    sansansan333   42 天前
    @Clarencep 我看你是来找喷的
        76
    shaco   42 天前
    我看了三遍,楞是没看懂你这个标题是啥意思.....
        77
    loryyang   42 天前
    校验正常来说,就是前后端都要做,可能会做一些细的分工,比如有些前端是做不了的。但是基本是从严做的
    你这种问题不是技术问题,而是团队协作问题
        78
    viator42   42 天前
    不校验被薅了羊毛有他好受的.你保证前端没问题坐等他翻车就行
        79
    luyluy   42 天前
    既然是公司后端普遍的开发习惯,这完全可以反映到更高层的技术负责人那里啊,私下提个意见也不会得罪谁,领导不会傻到开个大会曝你啊,不针对个人,也不会有什么道德困境
        80
    huangww   42 天前 via Android
    毋庸置疑,涉及安全,权限的东西肯定要后台校验,前台做一些语法方面的校验
        81
    tongz   42 天前
    后台连验证都懒得写??直接给领导反映吧,我觉得如果我是领导直接就给这哥们辞退了
        82
    fulvaz   42 天前
    啥网站, 发包交丫做人, hhhh
        83
    atcdef   42 天前
    前端可以不校验,至多体验差点,出不了什么大事,后端一定要校验。没听说过,前端校验,而后端反而不校验的。
        84
    66beta   42 天前
    你们都走偏了,楼主爆网站,让大家下几个单啊
        85
    Tompes   42 天前
    楼主只要把网站放出来,保证后端哥们明天不用去上班了。←_←
        86
    LamProductionS   42 天前
    找测试,说现在存在风险或者问题,让测试推动。
        87
    CloudMx   42 天前
    前端校验目的:提高用户体验,也可以防止简单的无效数据请求后端
    后端校验目的:功能以及安全性,必做。
        88
    imn1   42 天前
    哪家公司?
    这下有事可干了
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1441 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 75ms · UTC 13:58 · PVG 21:58 · LAX 05:58 · JFK 08:58
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1