国内互联网公司,为何不注重前端安全 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
peneazy
V2EX    程序员

国内互联网公司,为何不注重前端安全

  •  
  •   peneazy 2017-04-03 10:09:58 +08:00 8763 次点击
    这是一个创建于 3118 天前的主题,其中的信息可能已经有所发展或是发生改变。

    作为一名前端,感觉很多公司的前端安全非常脆弱。就这两年面试的公司来说,很多创业公司不注重前端安全。虽然 IE8 以上浏览器以及 Vue.js 这一类框架对 XSS 攻击做了一定的防范,但仍免不了无意或故意写出有漏洞的代码,随随便便把 cookie 给搞走。当然,很多公司的前端只用 jQuery 就不提了,很多前端流行:老夫拿起 jQuery 就是干。真想反问, jQuery 尤其是 jQuery 的早期版本没有做非常好的 XSS 防范,你真能时时刻刻考虑自己写的代码是否有 XSS 漏洞?

    不太了解后端,感觉大部分公司后端安全做的还可以, SQL 注入什么的感觉大家都挺注意的。只是有些疑问,为何前端安全那么脆弱。

    第 1 条附言    2017-04-03 13:51:02 +08:00
    标题改成:国内某些互联网公司
    52 条回复    2017-04-22 16:07:50 +08:00
    daryl
        1
    daryl  
       2017-04-03 10:12:53 +08:00   1
    其实讲道理, xss 也该是后端防范的= =
    dubuqingfeng
        2
    dubuqingfeng  
       2017-04-03 10:17:16 +08:00 via Android
    其实讲道理, xss 也该是前后端防范的= =,更何况还有 csrf ,点击劫持,造成的蠕虫,说明白了还是水平太差
    brucefeng
        3
    brucefeng  
       2017-04-03 10:17:34 +08:00
    前端即使做了安全,后端还会继续做的。前端承担交互功能,做安全没什么实质性作用。
    lujiajing1126
        4
    lujiajing1126  
       2017-04-03 10:18:26 +08:00 via iPhone   3
    不觉得安全和用什么框架,类库有关系
    chunqiuyiyu
        5
    chunqiuyiyu  
       2017-04-03 10:19:24 +08:00
    不觉得安全和用什么框架,类库有关系 +1
    U7Q5tLAex2FI0o0g
        6
    U7Q5tLAex2FI0o0g  
       2017-04-03 10:34:33 +08:00
    不觉得安全和用什么框架,类库有关系 +2
    U7Q5tLAex2FI0o0g
        7
    U7Q5tLAex2FI0o0g  
       2017-04-03 10:37:59 +08:00
    先问是不是,再问为什么
    sammo
        8
    sammo  
       2017-04-03 10:38:09 +08:00 via iPhone
    私以为是这只是不重视集成测试的诸多后果之一
    momocraft
        9
    momocraft  
       2017-04-03 10:38:38 +08:00
    (只会用 API) 和 (对安全没概念) 可能有关联性。要保证安全也需要能深入研究。
    peneazy
        10
    peneazy  
    OP
       2017-04-03 10:45:16 +08:00
    @lujiajing1126
    @chunqiuyiyu
    @littleylv
    就 Vue 来说,若其它环节都没有做任何防范处理(当然这种可能非常小), 第二种写法就存在 XSS 风险
    <span>Message: {{ msg }}</span>
    <span>Message: {{{ msg_html }}}</span>
    wuling
        11
    wuling  
       2017-04-03 10:59:50 +08:00
    私以为是大部分公司不重视或者没有相关保障措施。安全是个很复杂的东西,不能光靠程序员自律,一来安全知识领域很深,普通程序员最多做到最基本的注意事项。二来受限于业务进展,顾不了那么多东西。如果公司没有安全部门,没做专门安全测试,光靠自律就能安全了?不可能的
    sagaxu
        12
    sagaxu  
       2017-04-03 11:04:51 +08:00
    后端的职责,任何数据过来,都不该破坏或者影响其它正常数据,如 SQL 注入。
    前端的职责,后端返回的任何数据,展示时都自己做好转义,比如 XSS 。
    前后端一起合作完成的,例如 CSRF 。

    后端在 controller 里统一转义,或者清洗后再入库,都是中了 PHP Magic Quotes 的遗毒
    muziki
        13
    muziki  
       2017-04-03 11:13:53 +08:00 via iPhone
    因为有价值观加成啊
    什么?你说这儿不安全?罚你五个月饼好了
    peneazy
        14
    peneazy  
    OP
       2017-04-03 11:18:07 +08:00
    @sammo
    @momocraft
    @wuling
    @sagaxu 嗯,普通程序员有安全概念就很难得了,考虑这么多是会影响业务开发进度,关键还是要有安全部门
    peneazy
        15
    peneazy  
    OP
       2017-04-03 11:19:18 +08:00
    @muziki 从中秋到清明,这个梗还在。。。
    Moonless
        16
    Moonless  
       2017-04-03 11:24:20 +08:00 via Android
    @peneazy
    双大括号会将数据解释为纯文本,而非 HTML 。为了输出真正的 HTML ,你需要使用 v-html 指令:
    <div v-html="rawHtml"></div>
    被插入的内容都会被当做 HTML 数据绑定会被忽略。注意,你不能使用 v-html 来复合局部模板,因为 Vue 不是基于字符串的模板引擎。组件更适合担任 UI 重用与复合的基本单元。
    你的站点上动态渲染的任意 HTML 可能会非常危险,因为它很容易导致 XSS 攻击。请只对可信内容使用 HTML 插值,绝不要对用户提供的内容插值。

    摘自 vue 文档
    Biwood
        17
    Biwood  
       2017-04-03 11:27:55 +08:00 via Android
    360 网站监测 jQuery1.x 的最新版有 XSS 漏洞,能具体说说什么样的漏洞么,全世界那么多网站都在用的库,波及范围太广了吧
    cjyang1128
        18
    cjyang1128  
       2017-04-03 11:27:59 +08:00
    xss 现在危害性也不是很高,只要后端返回 cookie 的时候把关键性的 cookie (比如 session id )设置为 secure 就行了。其他的 xss 只能恶心恶心人
    EyreFree
        19
    EyreFree  
       2017-04-03 11:31:26 +08:00 via iPhone
    钱没花到位或者压根不在乎,一般是亡羊补牢,没人搞我或者有人搞但是没出大乱子就不管。

    举一个不太适当的例子:创业公司花三千五招了个实习生搞前端还指望什么安全...
    Luckyray
        20
    Luckyray  
       2017-04-03 11:32:27 +08:00 via iPhone
    没钱啊
    peneazy
        21
    peneazy  
    OP
       2017-04-03 11:35:32 +08:00
    @Moonless 哦,就是这个,忘记 Vue 文档已经说明了
    peneazy
        22
    peneazy  
    OP
       2017-04-03 11:38:29 +08:00
    @Biwood 不清楚,可惜乌云上不了了,之前有那么多的学习资源。。
    zhengxiaowai
        23
    zhengxiaowai  
       2017-04-03 11:51:42 +08:00
    因为对挣钱没有一点用处,国内什么鸟风气,还不知道吗?金钱至上,当安全威胁到挣钱时候才会去搞得,比如大一点公司
    ma63d
        24
    ma63d  
       2017-04-03 12:17:31 +08:00
    @peneazy 搞笑了,不觉得安全和用什么框架,类库有关系 +1
    同时, Vue 文档苦口婆心的说了一万次谨慎使用 HTML 插值和 v-html 。竟然也拿出来成为 Vue 的黑点。
    现在这些人为了搞个大新闻真是什么损招都使得出啊。
    ma63d
        25
    ma63d  
       2017-04-03 12:20:39 +08:00
    楼主千万别用原生 JS 了, document.innerHTML 危险更大更恐怖啊。。逃
    changwei
        26
    changwei  
       2017-04-03 12:43:08 +08:00 via Android
    这种还算小的,我现在看我同学写的各种类似于毕业设计的小项目,各种越权漏洞(数据库查询的时候 where 只接收 url 带上的 id ,不带上 session 里面的 user id 做限制条件)还有下载漏洞(../../这种的)还有上传不校验扩展名的(直接上传一个 jsp 到你服务器上),现在我们还在学最基础的 jsp ,至于其他 xss , csrf 的就更不用说了,从学校开始就有这种只看分数只看效果的思想,不重视隐含问题的习惯,只能靠以后职业生涯中的碰壁来修正吧。
    MrMario
        27
    MrMario  
       2017-04-03 12:52:13 +08:00 via iPhone
    @cjyang1128 不妨再加上 http-only ^_^
    dreamcountry
        28
    dreamcountry  
       2017-04-03 13:17:07 +08:00
    楼主这标题扣的帽子太大了,你说国内某些互联网公司还差不多
    cjyang1128
        29
    cjyang1128  
       2017-04-03 13:30:38 +08:00
    @MrMario 对,就是 http-only
    lujiajing1126
        30
    lujiajing1126  
       2017-04-03 13:38:52 +08:00 via iPhone
    @peneazy
    模板渲染里面的 escape 问题应该是比较基础的啊
    你用 jQuery 一样也会有这样的问题
    这和你用什么工具无关
    peneazy
        31
    peneazy  
    OP
       2017-04-03 13:42:27 +08:00   1
    @ma63d 我明明在正文里说 Vue 好,做了一定的防范,相比 jQuery 更能减少没有安全意识前端出漏洞的可能
    xiaoyu233
        32
    xiaoyu233  
       2017-04-03 13:42:51 +08:00
    因为前端漏洞不如后端漏洞简单粗暴?
    julyclyde
        33
    julyclyde  
       2017-04-03 15:55:29 +08:00
    前端作为一个“界”存在于业内也就七八年吧,哪儿有那么多经验流传下来啊……
    wobuhuicode
        34
    wobuhuicode  
       2017-04-03 16:05:51 +08:00 via iPhone
    不要相信任何传过来的信息……这个是做后端最基本的原则……前端只是用来显示,不是写逻辑的
    GG668v26Fd55CP5W
        35
    GG668v26Fd55CP5W  
       2017-04-03 16:22:12 +08:00 via iPhone
    前端还要担心安全的时候,说明后端没做好。
    jackmasa
        36
    jackmasa  
       2017-04-03 16:38:31 +08:00
    跟库关系当然大拉。。。
    插个题,有人知道这句代码会导致什么安全问题吗?
    ```Javascript
    jQuery.get(location.pathname)
    ```
    loading
        37
    loading  
       2017-04-03 16:46:58 +08:00 via Android
    这个锅应该前端没什么好背的。
    bdbai
        38
    bdbai  
       2017-04-03 17:37:18 +08:00 via Android
    @cjyang1128 你说的是 xss 还是 csrf ?
    Reign
        39
    Reign  
       2017-04-03 18:14:00 +08:00
    前端再怎么安全,都是要让后端重新来验证的,还不如放弃前端过滤
    mrjoel
        40
    mrjoel  
       2017-04-03 18:58:49 +08:00 via iPhone
    前端 xss 的受害者一般是用户
    xucheng
        41
    xucheng  
       2017-04-03 20:24:45 +08:00 via iPad
    XSS 不是应该靠 Content Security Policy就可以解决的吗
    jzz7280
        42
    jzz7280  
       2017-04-03 22:41:44 +08:00
    不然网络专业就不会转行了
    erevus
        43
    erevus  
       2017-04-03 23:29:25 +08:00
    @peneazy
    1.安全人员难招,挂出去 JD.只收到了大量实习生简历。
    2.安全落地困难。上 http-only 要推一年.如果是上 CSP 简直是要他们命
    3.没有发生事情,程序员就认为是安全的
    aboutTime
        44
    aboutTime  
       2017-04-04 00:34:38 +08:00
    我有一天闲来无事,用 react 试了下写点有 csrf 漏洞的代码,发现框架已经对 csrf 做了处理

    现在的浏览器和框架应该对这方面有处理

    私以为,前端安全怎么做也是一层纸,不过做还是要做的
    vincentqi
        45
    vincentqi  
       2017-04-04 00:47:07 +08:00
    安全成本也算在成本里,一个治安良好的社区没必要家家装防盗窗
    yanzixuan
        46
    yanzixuan  
       2017-04-04 08:47:29 +08:00
    @Reign 前端验证是防君子,后端验证是防小人
    Jiavan
        47
    Jiavan  
       2017-04-04 10:06:49 +08:00 via Android
    这个根本还是得后端来做验证,前端只是辅助性的防范,真正想 attack 的完全可以直接绕过 js 验证,倒是觉得某些公司很少考虑后端需要做这些事情
    ryd994
        48
    ryd994  
       2017-04-04 10:45:53 +08:00 via Android
    因为他们后端也没注意
    gamexg
        49
    gamexg  
       2017-04-04 12:21:15 +08:00 via Android
    @falcon05 xxs 也是后端负责?
    MrMario
        50
    MrMario  
       2017-04-04 20:49:41 +08:00
    @xucheng #41 说解决太过了,只是缓解措施之一
    hweining
        51
    hweining  
       2017-04-05 22:53:29 +08:00
    mingyun
        52
    mingyun  
       2017-04-22 16:07:50 +08:00
    @yanzixuan 精辟
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1221 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 40ms UTC 23:51 PVG 07:51 LAX 16:51 JFK 19:51
    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