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

2020-02-14 11:16:04 +08:00
 waiaan

谢谢。

3639 次点击
所在节点    JavaScript
23 条回复
xingyuc
2020-02-14 11:19:38 +08:00
任何情况下
waiaan
2020-02-14 11:27:12 +08:00
@xingyuc 能否讲讲为什么?谢谢。
timothyqiu
2020-02-14 11:29:11 +08:00
前端过滤用户输入的目的是提高用户体验,后段过滤用户输入的目的是维持业务逻辑正确和安全。
bzw875
2020-02-14 11:31:32 +08:00
跨站脚本攻击( Cross Site Scripting )的时候
Austaras
2020-02-14 11:32:35 +08:00
3l 是对的
sonxzjw
2020-02-14 11:34:37 +08:00
同意 1 楼的

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


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

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

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

谢谢你建议,体验感能在前期对系统更迅速的获得认同,就取决于设计者了。
Xusually
2020-02-14 13:11:38 +08:00
任何时候
shaohan0228
2020-02-14 13:17:46 +08:00
任何情况下
mostkia
2020-02-14 13:23:59 +08:00
1 有条件的情况下:任何时候都要过滤用户输入。
2 基于安全考虑的过滤:任何会被保存的输入内容(但一般输入的内容都会被保存,所以基本等价于第一条)
mostkia
2020-02-14 13:26:02 +08:00
补充一下,前台过滤不等于后台无需过滤,安全性来讲,关键还是在后台,前台只能防君子,不防小人(一般前台只是为了提高用户体验而过滤输入)。
otakustay
2020-02-14 14:29:34 +08:00
前端的过滤和校验是为了给用户更好的体验,不是为了安全性
所以什么时候:能够给用户更好的体验的时候
jybox
2020-02-14 16:03:33 +08:00
不必要过滤输入,但必须要过滤(转义)输出,否则对于会显示来自其他用户输入的内容的网站,就会有跨域脚本攻击( XSS )的风险。很多人没有意识到这一点是因为大部分的前端框架(如 React )都是默认会对所有的输出进行转义的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/644483

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX