首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
waiaan
V2EX  ›  JavaScript

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

  •  
  •   waiaan · 10 天前 · 1813 次点击

    谢谢。

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

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


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

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

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

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