因为有些页面需要登录之后才可以访问的
如果使用 antd pro 这种打包好的,实际上未登录也可以从 js 中看到页面元素吧
1
Latin 2020-05-19 15:00:11 +08:00
webpack 打包就已经混淆过一遍,不放心自己再加混淆就好。
|
2
meteor957 2020-05-19 15:01:01 +08:00 2
前端代码本来就是暴露的
|
3
AngryMagikarp 2020-05-19 15:03:26 +08:00
页面是暴露的,但接口不是呀。
|
4
shintendo 2020-05-19 15:06:01 +08:00
没看懂你在问什么
是怕暴露代码还是怕暴露页面数据? 数据是从接口拿的,接口做好鉴权就行了,前端从来不做安全也做不了安全,前端权限控制做的是体验 代码的话,不说前端代码有什么价值,那跟登录不登录又有什么关系? |
5
anzu 2020-05-19 15:09:36 +08:00
会的,可以做成多页应用,登录页面和实际后台分别部署。
|
6
easonHHH 2020-05-19 15:10:24 +08:00
前端无秘密
请求页面的时候,登陆成功(鉴权)才返回页面,这是后端做的事情吧 |
7
sunshinev OP |
8
bsg1992 2020-05-19 15:47:28 +08:00
你前端代码就是暴露在外的,顶多就是混淆一下。
|
9
GDC 2020-05-19 15:47:37 +08:00
会的,一般都是打包成一个 js,花点功夫就可以在 js 里看到等后面页面的 dom 元素、字段名称、甚至和后端的交互逻辑,尤其是那些预置了提示信息的
|
10
shintendo 2020-05-19 15:48:25 +08:00
@sunshinev 比方说后台有个产品管理页面,只允许登录用户查看,你想保护的是这个页面的样子(左边一个导航栏上面两个搜索框下面一个翻页表格),还是这个页面的数据内容(产品名称产品价格产品规格)?
|
11
GDC 2020-05-19 15:50:08 +08:00
楼上好多人都不明白楼主在说啥,前后端不分离的情况,html 是服务端渲染的,一般的逻辑是判断未登录后就不渲染页面了(跳转到登录页),不会暴露业务信息。
除了楼上 @anzu 说的做成多页,也可以做组件懒加载。 |
12
heyjei 2020-05-19 15:52:43 +08:00
是的,没办法,用中间人技术,可以直接把 JS 代码修改并替换,把关键的前端的权限校验代码给去掉。
所以这权限验证,后端不可省。话说这权限验证本来就是后端的事啊。为了用户体验,前端才逐渐的加入了权限的验证。 |
13
GDC 2020-05-19 15:56:01 +08:00
|
14
SingeeKing 2020-05-19 16:06:17 +08:00
为什么没有人说 SSR
|
15
dartabe 2020-05-19 16:11:13 +08:00
SSR 可以吧?
|
16
faceRollingKB 2020-05-19 16:20:21 +08:00
这种功能一般需要框架提供,比如说 ng 路由的 guard 可以实现这种权限控制,原理就是打包时就把代码分开打包,获得权限后才会去加载脚本,vue 的话目前只用到懒加载,还没试过 beforeEach 能不能实现这种权限控制,不知道有没有人试过
|
17
lancelock 2020-05-19 16:28:05 +08:00
不是有混淆吗?不管用吗
|
18
shintendo 2020-05-19 16:38:28 +08:00
@SingeeKing 如果我的理解没错的话,ssr 也只有首屏是服务端渲染的
|
19
zhuweiyou 2020-05-19 16:47:58 +08:00
数据又不是写死在 JS 里的。
你考虑这些,没有意义。 |
20
linZ 2020-05-19 16:53:36 +08:00
不可以,明显你没有切换页面,然后检查元素。正常的话,只会渲染当前页面的内容,而不会
|
21
linZ 2020-05-19 16:59:29 +08:00
删掉上一条。可以看,但是成本值当么,还不如直接拉开发人员吃吃饭套套近乎呢。 ps:v2ex 真是拉中拉,连个回复删除的功能都没有。
|
22
Vegetable 2020-05-19 16:59:59 +08:00 3
这么说
如果有你的后端接口文档,不需要你的服务器,用代理+mock 数据,哪一个页面都可以随便进。只代理关键请求也很可能骗过前端的权限验证,这些关键接口往往就是登录开始的前几个请求,非常好定位。 |
23
faceRollingKB 2020-05-19 17:08:46 +08:00
@Vegetable 是这个道理,如果攻击者劫持了一个肉鸡所有的信息,那攻击者完全可以模仿这个用户,而且服务端也没有任何办法吧,所以才需要短信、邮件等其他手段做一个终极验证
|
25
Elephant696 2020-05-19 17:27:12 +08:00
是可以看到。
关键只看到前端代码也没什么意义啊,难道是因为这些代码里有什么有价值的东西怕泄露吗 |
26
namelosw 2020-05-19 21:09:35 +08:00
|
27
musi 2020-05-19 21:20:06 +08:00
页面不就是给人看的么?关键的是数据?
|
28
jinliming2 2020-05-19 22:03:10 +08:00
dynamic import,惰性按需加载,页面需要显示的时候才加载,webpack 上配一下就行。code split
|
29
lihongming 2020-05-20 08:55:07 +08:00 via iPhone
没用过 antd pro,但前端的权限验证只是为了用户不被不需要的页面打扰,并不是为了禁止他看。
你要是实在需要保密一些信息(比如 API 地址、字段名等),可以将这些信息在受保护的 API 中返回,无权的人就看不到了。 |
30
cw2k13as 2020-05-20 09:59:28 +08:00
js 会混淆的,还有页面是动态的会懒加载 js,有权限才会拉取 js 渲染页面,再说了页面有接口,后端也会判断权限
|
31
myCupOfTea 2020-05-20 11:59:11 +08:00
@jinliming2 没用,又没权限验证机制,懒加载照样可以拿,ssr 也不行 ssr 只是首屏渲染
楼主这个想法要实现首先,路由不能放前台 建议后台模版渲染完事,路由也放后台就 ok 呢 但是前端代码确实没啥价值,压缩过之后,鬼才看的懂(看懂局部当然没啥问题 |