发现一个用 vue 开发的网站上线了还是开发环境,这么勇的吗。。

2018-08-13 23:57:50 +08:00
 theyueno
12039 次点击
所在节点    问与答
107 条回复
channg
2018-08-14 11:00:45 +08:00
可能是个假码农
lrh3321
2018-08-14 11:01:19 +08:00
安全明显是看后端的,怎么可能会去信任前端传过来的数据。
yangxiongguo
2018-08-14 11:04:42 +08:00
别人在跟你讨论后端数据验证问题,扯什么跨站攻击呢?扯犊子吧!
python
2018-08-14 11:06:28 +08:00
年轻真好, 任性...
jotsai
2018-08-14 11:11:58 +08:00
真是逗,xss 和 csrf 还不是要靠后台过滤和校验
SakuraKuma
2018-08-14 11:15:15 +08:00
年轻真好,居然验证给前端做。。
前端验证是为了体验好不好????? #17 的例子完全就是后端的锅。
差点笑出声。
甚至怀疑你在钓鱼。
jin5354
2018-08-14 11:16:02 +08:00
讨论问题别转进(从后端数据验证跑到跨站攻击),别臆测(说一句理解一句,不要自己立靶子自己打),别制造不平等(我小白,别人都是大佬)。。不然这问题就没的讨论了
yamedie
2018-08-14 11:19:16 +08:00
我搞不懂你们槽点在哪里, 我说过前端验证[取代后端]了吗? 我一直在强调做 2 次验证好吗?

腾讯云学生机 360 元那次 bug 营销, 你们这些毕业多年凡是买了的, 哪个不是把 select 框 value 改掉再提交的?
chinvo
2018-08-14 11:25:20 +08:00
“做 2 次验证好” 不等于 “前端用 dev 版不好”

槽点就是不存在“前端安全”一说

表单篡改、跨站提交这些问题,前端是一个都解决不了的
chinvo
2018-08-14 11:29:04 +08:00
你自己在 #68 举的例子更是对前端验证的否定例子,你前端写的再复杂,混淆再严密,还不是 DevTool 直接就改了,数据交易就是要放在后端,用户输入和前端数据就是划等号的,前端(包括网页和 App )来的数据就是不能被信任。

前端验证只是用户体验的一环,Ajax 技术解决的问题就是“用户等待返回结果时间长”、“页面刷新白屏不友好”,不要因为带“验证”两个字就把前端验证真的当数据校验了。
yamedie
2018-08-14 11:31:49 +08:00
@chinvo 我来解释为什么用 dev 版不好? 因为前端代码没经过任何混淆就暴露在外, model 层数据整理的明明白白供你调试, 比那些 jQuery 开发的项目还容易让人搞懂业务逻辑. 假设前端调 ajax 还经过了前后台共同约定的 seed 做了参数加密签名(sha1 那些非对称加密), 你的签名加密方式也暴露的明明白白, 别人掌握了伪造接口签名, 就能用个 postman 轻松修理你们后端
swalle
2018-08-14 11:34:07 +08:00
真是难沟通啊
rockyou12
2018-08-14 11:34:32 +08:00
@yamedie 任何前端加密都是不可靠的,及时混淆了还不是明文,前端加密除了 https 没有任何靠谱的办法,混淆只能稍微增加人家阅读代码的时间
chinvo
2018-08-14 11:37:14 +08:00
@yamedie #71 所以你落入误区了

前端任何数据都不能被信任,前端不应该有任何加密和签名逻辑,前端借口暴露之后不应该导致大规模的伪造请求

你即使混淆了,DevTool 也能给你 Beautify,你即使加签名了,也能轻松找到签名逻辑和 seed

我来跟你讲你说的几个问题怎么解决

1、token 鉴权,比如 OAuth,怕泄漏的数据都只能用户访问,这样 token 泄漏了也只能访问用户自己的数据,token 有效期一过也不能继续访问
2、走 TLS,中间人和旁路设备不能窃听前后端数据交互
3、防爬虫措施,识别脚本流量
cjw1115
2018-08-14 11:37:44 +08:00
个人拙见,一个良好的后端,应该是对前端保持完全不信任的态度。
xycool
2018-08-14 11:37:48 +08:00
哈哈,真的笑死我了,原来你司的非对称加密的私钥是放在前端的吗。还加密方式暴露的明明白白。
还有你真的以为不用 dev,混淆之后,你们加密方式就不暴露了???????
@yamedie
xycool
2018-08-14 11:39:10 +08:00
活在自己的世界真的阔怕。真的是浪费时间回贴,还不如多写几行代码。
klesh
2018-08-14 11:40:16 +08:00
@yamedie 后端不相信前端验证没毛病
首先,这不代表前端就不能验证或者不应该验证
其次,就算你生产部署了,然后人家不能直接模拟 ajax 请求?伪造报文不要太容易。
最后,vue 部署成开发模式当然是不对的。但由此引发安全问题后端的锅很大
moonsola
2018-08-14 11:45:36 +08:00
@yamedie #68
大家都说了多少楼了,前端要验证,但是与安全无关,前端验证保证体验,后端验证保证安全。
前端代码再怎么混淆,总归是要毫无保留地暴露出来。前端用 js 进行数据加密都是自欺欺人,要不然也不会有 https 了。
yamedie
2018-08-14 11:48:52 +08:00
@xycool 不瞒你说我司真的是前端算 signature 的, 但同时所有请求也用了 OAuth 的 token, 两种鉴权方式一起用.
但我们的 java 没做到自己信息只有自己能查, 只要 token 和签名正确了, 也能冒充其他用户身份,只要篡改一下用户 id 就行了,所以我觉得我们的 java 不行,没做到 74 楼说的用户只能访问自己数据(可能接口安全他们只差一步而已).
所以我觉得,只要哪天微信 webapp 的浏览器限制被人破解了,我们这个破系统分分钟完蛋,因为后端虽然鉴权了,但根本没法防止用户在客户端篡改伪造身份.

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

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

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

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

© 2021 V2EX