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

这几天面试了几个前端,说说感受

  •  1
     
  •   JohnLou · 2015-12-08 15:12:44 +08:00 · 39112 次点击
    这是一个创建于 3280 天前的主题,其中的信息可能已经有所发展或是发生改变。

    position 定位 4 种说不清,做个二级导航只会用 jquery ,原生 js 不会。

    xss 、跨域也不了解。

    虽然我也是半桶水,还是前端严重招忽略和鄙视啊。

    第 1 条附言  ·  2015-12-08 15:53:07 +08:00
    总算可以补充了, xss 这个确实可以忽略,但像垂直居中这些搞不清楚 vertical-align 用在哪里,面试的人经常用 jquery ,然后问了下$('selectro')[0]表示什么,又不知道了。。。推荐面试的可以像我这样问这些问题。
    第 2 条附言  ·  2015-12-08 16:33:28 +08:00
    我问的是$('#id')[0],表意不是很清楚。
    第 3 条附言  ·  2015-12-08 16:58:28 +08:00
    我只是被安排来面试外包人员的,我只是个小炮兵。。不代表我司真实水平。
    102 条回复    2016-01-03 22:16:45 +08:00
    1  2  
    jarlyyn
        1
    jarlyyn  
       2015-12-08 15:19:41 +08:00
    position 4 中定位说不清不应该。

    2 级导航菜单用 jquery 没什么问题吧?

    跨域的确归前端管, xss 和前端关系不大吧……
    UnitTest
        2
    UnitTest  
       2015-12-08 15:28:23 +08:00
    哎 , 带几个新同事做了一年项目 . css 这些概念有的都忘掉了, 因为是其他同事写好静态页面.
    我现在主要就是写 spa 的 js 调用自己写的 java 的 rest 接口.
    这样是不是太 low 了...
    Hyperion
        3
    Hyperion  
       2015-12-08 15:29:57 +08:00
    position ,为什么老喜欢问这个… 估计都没用过一遍?二级导航,要动画要久一点。 xss ,跨域 不知道也略[哔]。

    应届表示前端职位现在好难找,不是年底忙不要,就是 hr 直接秒拒比较诚实的简历。
    JohnLou
        4
    JohnLou  
    OP
       2015-12-08 15:33:07 +08:00
    @Hyperion 网页中的页面经常用 position:relative 和 absolute 的组合吧。
    shyling
        5
    shyling  
       2015-12-08 15:39:24 +08:00
    我只知道 positive:absolute,relative,fixed 这三个=。=
    shyling
        6
    shyling  
       2015-12-08 15:40:34 +08:00
    倒是对跨域熟一点。。。遇到了关于跨域的好多坑,就熟了。。
    Hyperion
        7
    Hyperion  
       2015-12-08 15:45:38 +08:00
    @JohnLou 嗯,各种用, fixed 也比较常用,有时候 fixed 和 absolute 结合,两者之间切换也有。

    都是超级基础的东西-_-
    Hyperion
        8
    Hyperion  
       2015-12-08 15:47:57 +08:00
    @Hyperion 漏了一行: "也对, 问这个并没有什么问题."
    yangtze
        9
    yangtze  
       2015-12-08 15:54:29 +08:00
    @shyling 还有 static
    shyling
        10
    shyling  
       2015-12-08 16:03:11 +08:00
    @yangtze static 是不是默认的 0 0
    liiihhhh
        11
    liiihhhh  
       2015-12-08 16:13:08 +08:00
    如果只用 jquery 的话 不知道$('selectro')[0]不应该
    zqhong
        12
    zqhong  
       2015-12-08 16:20:44 +08:00
    不是前端,$('selector')[0] 应该是返回第一个符合要求的元素。不知道有没有理解错。。
    jas0ndyq
        13
    jas0ndyq  
       2015-12-08 16:21:35 +08:00
    LZ 是单词写错了么?
    'selectro'==
    otakustay
        14
    otakustay  
       2015-12-08 16:25:07 +08:00
    老实说 vertical-align 我也搞不清,少数搞不清的 css property 了……
    JohnLou
        15
    JohnLou  
    OP
       2015-12-08 16:31:34 +08:00
    @jas0ndyq 恩,是写错了。
    jasontse
        16
    jasontse  
       2015-12-08 16:35:55 +08:00 via iPad
    前端泡沫很严重啊,我觉得 @cqhtyi 你可以转方向了,不要再干苦逼的 SA 了。
    ryuutanyou
        17
    ryuutanyou  
       2015-12-08 16:37:50 +08:00
    身为一个设计,表示都知道啊,原生可以一边查,一边写出来。
    SilentDepth
        18
    SilentDepth  
       2015-12-08 16:42:48 +08:00
    二级导航是什么?
    Hyperion
        19
    Hyperion  
       2015-12-08 16:46:40 +08:00
    @jasontse 页面仔和前端区分还是蛮大的
    zzNucker
        20
    zzNucker  
       2015-12-08 16:47:08 +08:00
    @otakustay 搞不清 vertical-align 的我,感谢灰大给我信心。。。 QAQ
    w88975
        21
    w88975  
       2015-12-08 16:47:17 +08:00
    楼主问的前端问题都是一些基础,这都答不上来不应该
    如果要招厉害一点的,多问原生 JS 的原型 作用域等等,最好能做题,手写伪代码
    CSS 问各种预处理器 CSS3 的新特性 盒模型 Flex 布局等等
    包括一些前端工具流的实现.

    XSS 不知道可以原谅,毕竟这是安全行业才会涉及的,不过既然作为前端,也要学习一些 XSS 的知识
    acrisliu
        22
    acrisliu  
       2015-12-08 16:50:39 +08:00 via Android
    看了这个帖子,让我转前端的信心又增加了😂
    hqs123
        23
    hqs123  
       2015-12-08 16:55:52 +08:00
    这个应该很基础把,楼主都面试什么人了...
    shiny
        24
    shiny  
       2015-12-08 16:55:56 +08:00
    看来 lz 公司我可以面试通过了,不知道薪水有多少,了解下行情。
    luoway
        25
    luoway  
       2015-12-08 17:13:25 +08:00
    表示第一行都会,第二行没实际使用过。
    已经秋招被挑走了。
    我想因为前端学得比较杂,学 1 年的和 3 个月的区别还是蛮大的。前者已经知道为什么要学这个,和学到什么程度就够。而后者则不小心就走偏了,比如写起 CSS3 : https://www.v2ex.com/t/241074#reply23
    同样走偏的也有部分面试官,不是说楼主啊,见
    [[求职指南·web 前端]前端校招面试有这样三种面试官]( https://www.v2ex.com/t/230701#reply11)
    现在有些经验了,想想面试遇到的那堆坑人的面试官就来气,估计招去也不是干前端的,是全干的。
    Phariel
        26
    Phariel  
       2015-12-08 17:17:49 +08:00 via iPhone   ❤️ 1
    @zqhong jQuery 这样写是返回第一个符合的原生 dom 而不是 jQuery 对象 和.get(0)一样 返回 jQuery 对象是.eq(0)
    JohnLou
        27
    JohnLou  
    OP
       2015-12-08 17:22:04 +08:00
    @luoway 希望我不是你说的走偏那种,现在前端技术那么多那么杂,我自己也没了解那么多,我面试也只问一些基础的东西,都是我目前工作经常碰到的,技术、框架这些可以慢慢学,从基础可以看出平常他是怎么学习的了。
    learnshare
        28
    learnshare  
       2015-12-08 17:24:27 +08:00
    说实话,我参加面试也是发现自己不会背书。用习惯了高端工具,就容易忘掉基础。

    虽然背书式的面试我不赞成,但有些东西还是要张口就来的。
    jiongxiaobu
        29
    jiongxiaobu  
       2015-12-08 17:31:26 +08:00 via Android
    还可以问问哪些操作会触发 layout 哪些会 repaint 。
    zqhong
        30
    zqhong  
       2015-12-08 17:32:16 +08:00
    @Phariel 谢谢!
    strivek
        31
    strivek  
       2015-12-08 17:38:23 +08:00   ❤️ 1
    position 定位 4 种说不清,
    这个没有看过基础知识,默认 static ,这个很基础
    做个二级导航只会用 jquery ,原生 js 不会。
    对于做 mis ,非维护 PC 页面,主做移动端, Hybired ,活动页,移动端二级导航的确用的不多。
    不会写,表明没有认真准备面试
    xss,对于发布上线系统很成熟的公司,本身内部就有了 xss 检测,的确很多人不大关注。

    面试,我觉得更重要的是考察发现他会什么,是否满足自己需要,未来是否可培养。因为一些公司情况,没有接触很多底层知识,但是工作中她依然可以表现的很棒。我的一个同事,研究生毕业后一直在用 angular 做 mis 系统,工作效率态度都值得称赞,但是其基础技能不见得比培训班出来的人扎实。
    djyde
        32
    djyde  
       2015-12-08 17:49:23 +08:00
    应届生面前端职位确实很尴尬,我觉得很大的问题在于学校在前端工程方面的教育为 0.

    除非是真的自己早就对前端感兴趣并且花时间去学习,应届生对前端的理解可能还是 dreamweaver 画几个 div 、写写 css ,用 jquery 操作一下 DOM 。

    至少我们学校我们级就只开了门学 HTML 的必修(我的专业方向还叫『移动互联网应用开发』呢。。。),我最后还挂科了,因为里面有很多题是问你 dreamweaver 的相关操作。。。

    kenshinhu
        33
    kenshinhu  
       2015-12-08 17:51:30 +08:00
    ......但感觉这些会用也不一定可以做出东西吧?直接老老实实用 jquery 也不错啊~~~
    dong3580
        34
    dong3580  
       2015-12-08 17:55:02 +08:00
    @learnshare
    用惯了 VS 写代码,还真不习惯背书,
    我一般都会直接要求去面试之前看清楚我写的简历,会哪些技能,不会哪些,这些都很老实的写的很清楚。
    yoa1q7y
        35
    yoa1q7y  
       2015-12-08 18:03:30 +08:00
    这种太多了,我之前连续几周面下来,基本全是这样的,离了 jQuery 基本没法干活,更别说面向对象、组件化、 ES5 、 ES6 等等
    后来面试反馈我都懒得写了,直接 copy 回复
    hienchu
        36
    hienchu  
       2015-12-08 18:06:05 +08:00
    我觉得前段不用面,直接看他写过的代码和项目就行了。前段技术本来就松散自由,能搞定问题才是王道
    Garwih
        37
    Garwih  
       2015-12-08 18:06:34 +08:00
    在什么时候会使用 $('#id')[0] 而不使用 document.getelementbyid('id')?
    JohnLou
        38
    JohnLou  
    OP
       2015-12-08 18:11:24 +08:00
    @Garwih 如果没有 id 呢。。
    hoythan
        39
    hoythan  
       2015-12-08 18:19:01 +08:00
    二级菜单用 jquery 做是什么心态?明显用 css 就可以完全搞定的东西,我并不觉得用 jquery 效率高。
    除非是需要用到 click 事件之类的,但是主要也是 CSS 类的操作呀...
    另外做了这么多年的 css,我竟然没有用过 position 的 static 。如果真的要问问题的话,应该是 5 个呀
    absolute fixed relative static inherit
    djyde
        40
    djyde  
       2015-12-08 18:19:50 +08:00
    @JohnLou 如果你 select 一个 id 返回的结果大于一个,那你的 html 有问题,不应该出现重复的 id
    hbkdsm
        41
    hbkdsm  
       2015-12-08 18:20:59 +08:00
    JohnLou
        42
    JohnLou  
    OP
       2015-12-08 18:24:12 +08:00
    @hoythan 赞同。
    mengzhuo
        43
    mengzhuo  
       2015-12-08 18:25:26 +08:00
    跨域需要注意 cookie 和源策略的配置、不过现实项目里一般是直接 301 跳个遍╮(╯▽╰)╭
    xss 也是前端的工作、服务端负责校验
    楼主说的基本都知道大概

    不过我是游戏服务端的程序员~哈哈哈
    an168bang521
        44
    an168bang521  
       2015-12-08 18:39:27 +08:00
    @Garwih 把 jquery 对象转为原生的 DOM 对象时候会用到的$('#id')[0]的, jquery 选择的都是一个数组,[0]就可以直接从 jquery 模式切换到原生对象继续开发;除了这个,别的地方好像用不到;
    binux
        45
    binux  
       2015-12-08 18:39:30 +08:00
    前端为什么不要管 xss? 不能说随便传个字符串就用 $.html 往页面上插啊.
    feather12315
        46
    feather12315  
       2015-12-08 18:49:57 +08:00 via Android
    …就学过 bootstrap 与 mdl 的我都知道这。。。
    hbkdsm
        47
    hbkdsm  
       2015-12-08 18:52:04 +08:00
    @feather12315 mdl 是啥?
    Pastsong
        48
    Pastsong  
       2015-12-08 19:02:46 +08:00
    @hbkdsm
    Material Design Lite 我猜
    MaiCong
        49
    MaiCong  
       2015-12-08 19:07:39 +08:00 via iPhone
    我最近面试的几个人,给我的感觉就是会 DIV+CSS ,会用 jQuery 查找 DOM 就自称是前端工程师了。连 jQuery 有几个 AJAX 方法都不知道。

    工资要求都在 8000 左右。

    什么时候前端变成这样了?
    kisnows
        50
    kisnows  
       2015-12-08 19:11:50 +08:00
    上次老大让我去面了个前端,计算机本专业的研究生。
    然后让写个很简单点击一个 ul 下面多个 li 弹出 li 本身 index 的代码都没写出来,还是在我一直给提示的情况下。
    然而重点是,期望薪资要的比我现在拿的还多……
    Hyperion
        51
    Hyperion  
       2015-12-08 19:17:07 +08:00
    @MaiCong -_- 有的广告公司要求就是这样啊.

    @kisnows 事件代理吗? 原生吗?
    formatComb
        52
    formatComb  
       2015-12-08 19:17:24 +08:00
    问的这些很基础吧,大家为啥吐槽……
    JohnLou
        53
    JohnLou  
    OP
       2015-12-08 19:19:31 +08:00
    @formatComb 前端 = jquery , 哈哈
    formatComb
        54
    formatComb  
       2015-12-08 19:20:59 +08:00
    @JohnLou 你这就不专业了,明明是 ===

    23333
    kisnows
        55
    kisnows  
       2015-12-08 19:20:59 +08:00
    @Hyperion
    这个方法很多了。时间代理可以,直接走循环也可以。
    是要求原生,因为这个很简单啊,用原生要求不过分吧
    formatComb
        56
    formatComb  
       2015-12-08 19:22:00 +08:00
    @kisnows 并不过分
    父元素事件委托
    闭包循环

    很基础了。。。
    Hyperion
        57
    Hyperion  
       2015-12-08 19:25:44 +08:00
    @kisnows -_- 不过分, 不过惭愧, 没有智能补全, 不看手册背不出节点属性名...
    feather12315
        58
    feather12315  
       2015-12-08 19:29:00 +08:00 via Android
    @Pastsong 对!
    xwartz
        59
    xwartz  
       2015-12-08 21:28:31 +08:00
    = = 其实有时候面试也要看现场发挥的,有时候面试的时候脑子一热就说错了,然后面试官和自己都没又发现。。。
    当然基础的还是要掌握的
    crowds
        60
    crowds  
       2015-12-08 21:29:25 +08:00
    ..好久不看这些都忘掉了。。
    cxbig
        61
    cxbig  
       2015-12-08 21:31:57 +08:00
    个人觉得对于导航那里,倒是不必纠结用原生的还是 jQuery 。
    MinonHeart
        62
    MinonHeart  
       2015-12-08 21:39:01 +08:00 via Android
    精通 vertical-align 的人很少ㄟ( ̄▽ ̄ㄟ)
    think2011
        63
    think2011  
       2015-12-08 21:43:20 +08:00
    虽然我会不少东西,只是年前的几场面试都败在单词不会说上.. 悲哀:(
    chend
        64
    chend  
       2015-12-08 21:50:35 +08:00
    vertical-align 在 middle baseline 上确实难用~~ 感觉只是针对 inline 的 img 和 文字 。。

    lz 吐槽 jQuery 什么心态, 除非是 MVVM , 大部分 不用 jQuery , 写的复杂度、兼容 = 恶心死
    yangff
        65
    yangff  
       2015-12-08 21:56:29 +08:00
    垂直居中不是俩 div 套马
    JohnLou
        66
    JohnLou  
    OP
       2015-12-08 22:09:23 +08:00
    @cxbig 导航是问 position 的,他们都说用 jquery 实现,然后发现他们 left 和 top 这些都不会用。
    amrio
        67
    amrio  
       2015-12-08 22:10:09 +08:00
    vertical-align 和 line-height 是一个路子,理解 line-height 就差不多了。另外垂直居中我一直是 inline-block + vertical-align 大法!移动端直接上 flex !

    最近也面了好多个,有几个不错的,但是因为是实习,公司给不到他们想要的工资,其实也不是太高,就 7K 这样,水平是有的,如果已经毕业那么完全可以拿到。

    我现在还在招前端(初 /中级),工作地点在深圳车公庙,可以给到 1W 以上,活不是很多,有人想试试的吗?
    JohnLou
        68
    JohnLou  
    OP
       2015-12-08 22:10:22 +08:00
    @chend 问用过什么框架,说只用过 jquery ,然后继续问些原理性的都不会了,不是吐槽 jquery 。
    Hyperion
        69
    Hyperion  
       2015-12-08 22:10:32 +08:00
    @chend 是啊, 其实框架的价值最重要的特性是抹平浏览器差异.

    只可惜是被人用烂了...
    laogui
        70
    laogui  
       2015-12-08 22:17:36 +08:00 via Android
    茴香豆的茴字有四种写法
    cxbig
        71
    cxbig  
       2015-12-08 22:20:26 +08:00
    @JohnLou JS 用什么框架没有关系,不过 css 基础都不行,那确实太差。
    XDA
        72
    XDA  
       2015-12-08 22:28:30 +08:00 via Android
    看楼楼 Append 就知道楼楼被吐槽了,现在的 V2 充满了眼高手低的 Low 逼,习惯就好,信不信你说招个运维问 TCP 三次握手都说不清,然后就会有人吐槽你运维不需要懂三次握手,会配服务器就行了
    SonicY
        73
    SonicY  
       2015-12-08 22:32:18 +08:00
    这貌似是最最最基础的问题吧 = =
    crowds
        74
    crowds  
       2015-12-08 22:40:04 +08:00
    @XDA 要看是啥运维 安全的和数据库的也是运维。。
    你要是问有个三五年工作经验的 DBA 或者搞安全的这个
    人家估计直接走了。。
    TCP 三次握手只能说是人家萌新,啥都不懂,没啥好问的就只能问这些了,既然啥都不懂,也就没有招的必要了。
    Garwih
        75
    Garwih  
       2015-12-08 23:40:29 +08:00
    @JohnLou 你后面补充说问的是 $('#id') [0] 啊,这不就有 id 了。
    @an168bang521 有 id 的情况下,要获取原生 DOM 对象我还是倾向于使用 document.getElementById(),用 jQuery 毕竟多一层查询。
    zakokun
        76
    zakokun  
       2015-12-08 23:53:13 +08:00   ❤️ 1
    这种抱怨贴总会有一群人过来洋洋得意的过来炫耀自己啥也不会.真是不嫌丑
    XianZaiZhuCe
        77
    XianZaiZhuCe  
       2015-12-09 00:36:24 +08:00 via Android
    flex?
    YuJianrong
        78
    YuJianrong  
       2015-12-09 09:06:42 +08:00
    说明一下 vertical-align 绝对不是专用于垂直居中,主要作用还是 inline 元素的垂直对齐,但这个真的很难搞……
    learnshare
        79
    learnshare  
       2015-12-09 09:38:15 +08:00
    @dong3580 其实很多公司面试的人并没有看过应聘人的简历、作品(可能只是 HR 告诉他有个人来面前端),只知道他要面这个职位,并不了解他是什么水平。

    所以面试的时候有些糊弄,甚至随便应付一下,并没有针对性。而且往往会应聘人和职位要求不太匹配,也要硬面一次(我是遇到过了,我觉得被面的有些糊弄,不够真诚)。
    dong3580
        80
    dong3580  
       2015-12-09 10:21:06 +08:00
    @learnshare
    刚出来的时候遇到过很多次,真的是浪费自己的时间。

    所以我现在都会把要求都写在简历上,并告诉电话通知面试的人,请确认简历符合要求并发来贵司的介绍信息。会的自然没问题,不会的技能如果是硬指标,也不要面了,以免浪费大家时间。这样就能过滤掉并非诚意招聘的招聘需求。
    unknownservice
        81
    unknownservice  
       2015-12-09 11:02:26 +08:00
    你的要求是几年经验啊? 2 年以上答不上来感觉不应该吧。。。
    JohnLou
        82
    JohnLou  
    OP
       2015-12-09 11:06:22 +08:00
    @amrio 实习要 7 千啊,想前年我实习的时候给了 2000 都觉得开心得要死了,当然我还在学校。
    JohnLou
        83
    JohnLou  
    OP
       2015-12-09 11:07:02 +08:00
    @unknownservice 没经验要求,我也才工作不到半年,只想找个帮忙干活的。
    DualWield
        84
    DualWield  
       2015-12-09 11:10:22 +08:00
    @jarlyyn xss 怎么和前端关系不大了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
    jarlyyn
        85
    jarlyyn  
       2015-12-09 12:09:15 +08:00
    @DualWield

    作为一个从服务器到后台到前端都做的人来说

    xss 的确和前端关系不大。

    xss 也不该和前端有关系。

    所谓的 xss 本质来说也是正常的网页代码片段。

    判断这个代码是否是恶意的怎么会由前端来进行呢?

    前端在这一个部分做的不应该是输出后台抛过来的内容?

    唯一和前端有关的是怎么去解析后台抛的内容吧?

    但这个是解析的问题,就如同显示的是 某种过滤规则的代码 /markdown/bbocde 之类。

    xss 本身和前端能有啥关系呢……
    nino
        86
    nino  
       2015-12-09 12:13:00 +08:00
    我的经验来看, position 的问题可以刷掉 60%以上的候选人。
    chemzqm
        87
    chemzqm  
       2015-12-09 12:40:08 +08:00
    @jarlyyn ajax 都这么多年了,别告诉我你的页面全是后端输出的,
    如果页面上使用类似 innerHTML 的方法渲染请求来数据,那就很有可能造成 xss 泄露
    成熟的框架类似 angular 和 react 都会把数据 escape 再渲染到 dom
    jarlyyn
        88
    jarlyyn  
       2015-12-09 13:27:54 +08:00
    @chemzqm

    难道我说的不就是 ajax 的流程么?

    用不用 Innerhtml 重要么?

    本质上 escapde 就是种 decode 方法。

    因此,做接口的时候需要明确输出的代码该怎么 decode,不对么?

    如果会有 XSS 问题

    也是 “后台不加处理的输出了原始的 html 代码”的问题。

    xss 问题归结到前端不是和后台的数据验证交由前端来处理一样么?
    jarlyyn
        89
    jarlyyn  
       2015-12-09 13:31:10 +08:00
    @chemzqm

    更确切点说。

    作为一个后台接口 /模型来说。

    一个文档告诉前端,这个数据内容是什么,很重要吧?

    纯文本?

    html?

    markdown?

    bbcode?

    先想清楚这个,再来考虑问题是不是前端的问题吧。

    大部分安全问题不该由前端来负责,这个是必须的。
    DualWield
        90
    DualWield  
       2015-12-09 14:23:18 +08:00
    @jarlyyn xss 分为 2 类:存储型 XSS 与反射型 XSS,你说展现后台传送的数据属于存储性的。反射性的那就和后端没什么关系了
    fwings260
        91
    fwings260  
       2015-12-09 14:37:24 +08:00
    刚开始学都是用原生
    后来发现用框架方便,就开始 jquery
    然后。。。原生就不会写了。。。

    然并卵,老子转行了!
    nino
        92
    nino  
       2015-12-09 14:40:09 +08:00
    @jarlyyn 就算是存储型 XSS 也是需要前端后端工程师都重视的,你不能确保每个点都做过 escape ,所以前端应该在前端的范畴来预防
    lijingyu68
        93
    lijingyu68  
       2015-12-09 14:45:02 +08:00
    我一直觉得前端工程师的定位是写 js ,而 css 是美工来写的。所以,前端面试应该重逻辑和算法、服务器等等,而 CSS 是慢慢积累出来的经验,对前端影响不大。
    jarlyyn
        94
    jarlyyn  
       2015-12-09 14:47:06 +08:00
    @DualWield

    展现后台传送的数据和存储性不存储性有什么关系…………

    你说的问题无非是 前端在 JS/模板中不加处理的把部分 get 参数 /hash 等当作 html 来处理了呗。

    也就是前端跳过了后台去处理罢了。

    也就还是那个问题

    “后台的数据验证交由前端来处理”

    当然,你一定要说你做的是网页 app/工具,没有后台。

    那 ok,是我的错。

    理论上,前端也能操作数据库不是么?
    jarlyyn
        95
    jarlyyn  
       2015-12-09 14:48:30 +08:00
    @nino

    escape 本身是一种 Decode 的方式。

    我认为 不能作为一种 默认的 处理方式。

    decode 的方式本身就是需要前后端商议的部分。
    nino
        96
    nino  
       2015-12-09 14:51:11 +08:00
    @jarlyyn 你这是最理想化的情况,实践中你调用的接口可能并没有这个商议的过程,或者是第三方的接口,如果前端工程师没有 XSS 的基本概念,你的应用是很脆弱的。
    luoway
        97
    luoway  
       2015-12-09 14:54:08 +08:00
    @lijingyu68 事实上很多稍微复杂点的效果就要用 JS ,所以你不能把偏设计的前端贬为美工,虽然他 /她得耍 PS
    jarlyyn
        98
    jarlyyn  
       2015-12-09 14:58:09 +08:00
    @nino

    OK 。你可以认为这是理想化的情况。

    那么,这个问题其实会更复杂。

    也就怎么默认处理后台抛过来的长的像 html 的东西。

    我个人觉得,直接简单粗暴的 escape ,也不是万能的吧?

    至少在我的观点中,后端管数据,前台管表现。

    xss 这种东西牵涉到数据的处理与验证。个人觉得不适合让前端来处理。

    最后,个人意见。

    如果前端工程师没有 xss 的基本概念,应用可能是很脆弱的。

    但依靠前端工程师去做 xss,应用一定是脆弱的。

    毕竟,现在 api 调用+web/app/mobile 的形式也很多吧。这东西不从源头上去处理真的好么?
    nino
        99
    nino  
       2015-12-09 15:02:20 +08:00
    @jarlyyn 我并不是否认你的观点,但是百密总有一疏,我们能做的就是尽量从各个方面降低 XSS 的风险。所以前端工程师也是有必要了解 XSS 的。
    jarlyyn
        100
    jarlyyn  
       2015-12-09 15:04:07 +08:00
    @nino

    的确,了解肯定还是有好处的。

    毕竟有时候可能做一些绕过后台的页面。比如在线页面,比如在线工具。比如一个简单的前台显示页。设置是为了降低服务端的负担。

    我有点思维定势了。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2618 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 05:33 · PVG 13:33 · LAX 21:33 · JFK 00:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.