为什么说页面端的数据验证不可靠

本文通过案例说明前端验证不可靠,强调后端验证的重要性。指出JS不应涉及数据与业务逻辑控制,并建议压缩JS及合理命名文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前一直没有注意这个问题,觉得在js中做过数据验证后就没有必要再在后端做数据合法验证了,今天拿一个页面测试后发现页面端的数据验证根本不可靠。

拿今天的例子来说,公司的业务是汽车租赁服务,后台管理网站中有个功能:一个城市下允许将一个门店所拥有的车型复制给另一个门店,当初的需求是不允许将一个门店的车型复制给这个门店本身,如图

对应的js:

这个时候我仅仅需要F12打开控制台,在控制台中删掉这段js代码保存,就可以执行这个违规操作。

好在这个网站只有内网可以连,我又在百度上搜索了一家旅游电商上市公司的官网,打开控制台后发现居然这个对外的官网js也是这种风格,阅读代码后发现页面的游客登录账号只要在js里修改了身份类型后就可以以正常身份登录进去。。。

我又翻了翻阿里巴巴、百度的一些网站后,总结以下几点:

第一,但凡跟数据、业务逻辑有关,都不要写在js里,js最好只控制交互不控制流程;

第二,养成压缩js的习惯,压缩后的js可读性会变差很多,尽管在别有用心的人面前作用不大,但多少能让一部分无聊的人打消一些无聊的主意;

第三,js文件的命名不要暴露功能,今天翻了不少网站,很多网站打开控制台就能看到诸如“login-index”之类的命名,里面各种身份验证方法甚至还写清楚注释告诉你某个字段的值为几的时候这个登录账号可以拥有什么类型的权限

最后再强调一下,永远别信任前端数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值