前后端分离开发后台遇到的问题

2019-11-23 04:36:21 +08:00
 kajweb

登陆

正确返回{status:200,data: {token:xxx}}

错误返回{status:100,data: false}

问题

然后被人使用 fidder 将登陆失败时的返回修改为正确,成功进入后台管理页面(可以看到管理页面的结构),但是获得不了数据。

获取数据结构返回{status:403,data: false} 又被强行修改为 200。

editor 的上传接口没有鉴权和图片处理,导致图片被成功上传。

然后现在的问题是:登陆应该怎么拦截,才能不被绕过。

前端使用 VUE 非 SSR 模式

2297 次点击
所在节点    程序员
29 条回复
hotcool100
2019-11-23 11:46:34 +08:00
前端 nuxt + vue + element
后端 java + shiro
前端页面与后端接口方法,都统一使用 shiro 权限标识符做了验证
muzuiget
2019-11-23 11:48:30 +08:00
只好上传接口加鉴权了,客户端段代码发出去对方怎么跑也控制不了的。
lniwn
2019-11-23 12:13:00 +08:00
登录成功之后,不仅仅只是返回状态码,加上校验信息,或者前端判断登录状态码成功之后,再校验下 cookie。
eason1874
2019-11-23 13:21:14 +08:00
@kajweb #15 能通过前端修改数据进入管理页面,就说明你没有鉴权啊,鉴权了怎么可能绕得过。

管理页面应该是一个独立的域名或者路径,访客在其他页面登录之后跳转到管理页加载管理资源。未登录访客访问管理页面时,后端通过 session 验证登录状态,session 错误的直接 HTTP 302 到登录页面。

你是管理页面资源没有做鉴权,访客才能在没有 session 的情况下加载管理页面。
des
2019-11-23 13:29:06 +08:00
@kajweb 单独做个登陆页面,可以放到一个单独的路径,其余所有页面都加鉴权就好了
hushao
2019-11-23 13:29:48 +08:00
通过接口控制 html 的渲染是没用的,感觉你需要的是服务端渲染...
chairuosen
2019-11-23 13:29:55 +08:00
登录那个不是问题,拒绝修改。看到页面又如何,反正不能操作。本来整个项目代码都给到浏览器了,怎么控制都控制不了。你要是觉得 UI 也是秘密,就改回传统架构,告诉他们评估工期半年。
hushao
2019-11-23 14:04:55 +08:00
@chairuosen 对的,客户端渲染的本质决定了除数据之外的信息都处于开放状态。要么你们的后台单独用个域名,别公开,别人一般也不会知道。
mmdsun
2019-11-23 18:49:05 +08:00
接口没做判断?集成 spring security 吧。

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

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

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

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

© 2021 V2EX