推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
waiaan

前端什么情况下需要过滤用户的输入?

  •  
  •   waiaan · Feb 14, 2020 · 4550 views
    This topic created in 2305 days ago, the information mentioned may be changed or developed.

    谢谢。

    Supplement 1  ·  Feb 17, 2020
    是过滤,防止攻击,不是校验。
    23 replies    2020-02-15 14:00:08 +08:00
    xingyuc
        1
    xingyuc  
       Feb 14, 2020 via Android   ❤️ 1
    任何情况下
    waiaan
        2
    waiaan  
    OP
       Feb 14, 2020
    @xingyuc 能否讲讲为什么?谢谢。
    timothyqiu
        3
    timothyqiu  
       Feb 14, 2020   ❤️ 10
    前端过滤用户输入的目的是提高用户体验,后段过滤用户输入的目的是维持业务逻辑正确和安全。
    bzw875
        4
    bzw875  
       Feb 14, 2020
    跨站脚本攻击( Cross Site Scripting )的时候
    Austaras
        5
    Austaras  
       Feb 14, 2020
    3l 是对的
    sonxzjw
        6
    sonxzjw  
       Feb 14, 2020   ❤️ 1
    同意 1 楼的

    有一个原则 [系统在任何时候都不能相信用户的所有输入] ,所以任何情况下都需要过滤验证。为了安全性、健壮性。
    murmur
        7
    murmur  
       Feb 14, 2020
    校验可以提高体验,但是做多少过滤后端都不能省
    涉及可能有用户输入显示的地方必须做 XSS 过滤
    chen1164162915
        8
    chen1164162915  
       Feb 14, 2020
    前端不需要过滤,后端需要
    mnssbe
        9
    mnssbe  
       Feb 14, 2020 via iPhone
    前端可以检测数据格式,不需要过滤
    tslling
        10
    tslling  
       Feb 14, 2020 via Android   ❤️ 2
    认同 4 楼的看法。但是我记得以前 v2 上有个人发帖求打车软件不要在前端校验手机号码了,所以前端校验的话要注意保持更新,不然提升体验的就可能变成降低体验甚至不可用啦。


    @sonxzjw 建议看看 4 楼的原则,你说的考虑更适合在后端过滤
    vicvinc
        11
    vicvinc  
       Feb 14, 2020 via iPhone
    同 3
    wooyuntest
        12
    wooyuntest  
       Feb 14, 2020
    always
    MeteorCat
        13
    MeteorCat  
       Feb 14, 2020 via Android
    同 3
    sonxzjw
        14
    sonxzjw  
       Feb 14, 2020
    @tslling 我还是保留原来的意见。为了体验而降低安全性或者只靠后端我认为不可取。
    为了寻找平衡点,有些地方需要放弃。就如同数据库设计的逆范式一样。

    目前前端已经都有 nodejs 之类的前端了,前端已经或者很多时候需要做更多的逻辑处理了,安全性的要求已经不比后端低多少了。如果是 163 时代的话还可以这样做。

    目前国内很多系统、app 都有很好的体验性,但却存在很大的安全隐患,只是尚未爆发而已。这是后话,展开就大了。

    谢谢你建议,体验感能在前期对系统更迅速的获得认同,就取决于设计者了。
    Xusually
        15
    Xusually  
       Feb 14, 2020
    任何时候
    shaohan0228
        16
    shaohan0228  
       Feb 14, 2020
    任何情况下
    mostkia
        17
    mostkia  
       Feb 14, 2020
    1 有条件的情况下:任何时候都要过滤用户输入。
    2 基于安全考虑的过滤:任何会被保存的输入内容(但一般输入的内容都会被保存,所以基本等价于第一条)
    mostkia
        18
    mostkia  
       Feb 14, 2020
    补充一下,前台过滤不等于后台无需过滤,安全性来讲,关键还是在后台,前台只能防君子,不防小人(一般前台只是为了提高用户体验而过滤输入)。
    otakustay
        19
    otakustay  
       Feb 14, 2020
    前端的过滤和校验是为了给用户更好的体验,不是为了安全性
    所以什么时候:能够给用户更好的体验的时候
    jybox
        20
    jybox  
       Feb 14, 2020
    不必要过滤输入,但必须要过滤(转义)输出,否则对于会显示来自其他用户输入的内容的网站,就会有跨域脚本攻击( XSS )的风险。很多人没有意识到这一点是因为大部分的前端框架(如 React )都是默认会对所有的输出进行转义的。
    huijiewei
        21
    huijiewei  
       Feb 14, 2020
    前端验证是提高用户体验的
    lemon6
        22
    lemon6  
       Feb 14, 2020
    账号登录注册的文本框,过滤掉前后空格,因为用户喜欢复制,会多复制空格导致密码错误。
    xingyuc
        23
    xingyuc  
       Feb 15, 2020 via Android
    @waiaan 三楼说的对,而且就算前台不校验手机号,身份证号等,也要判断格式是否是想要的不会出现数字框出现汉字
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2856 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 07:50 · PVG 15:50 · LAX 00:50 · JFK 03:50
    ♥ Do have faith in what you're doing.