[小疑惑] 前端是否能控制页面访问权限
我想问问前端是否能控制页面访问权限。Jquery 可以实现吗?我试了一下发现直接禁用 JS 就可以跳过。
还是必须得和后端联调,使用 Vue ?单纯使用 Js 做不了权限控制么?
还是必须得和后端联调,使用 Vue ?单纯使用 Js 做不了权限控制么?
所以页面上的权限控制都是防君子不防小人的,即只是单纯的提醒你你没有这个按钮的权限,点了也没用。所以我给你隐藏了。
真正的权限控制都是服务器端接口的控制。
比如,前端可以加密数据,必须知道正确密码的人才能解密。但这种方法的缺点是,你必须通过别的方式把密码告诉用户,并且用户必须是一个可靠的人(一个不会泄露密码的人)。
业务需求的话,直接可以从接口处拦截,后端不返回数据就行了,前端用户能不能 hack 进页面都没用。
是这样。所以如果需要控制的页面真的很重要(完全不能暴露),可以通过服务器端鉴权后返回 html 与 js 的方式来解决。
@yaphets666 这部分直接在前端修改代码,修改 localstorage 是不是可以跳过?
js 源代码是可以直接在浏览器修改的,直接跳过检查可不可以。
如果上面的方法麻烦,只要后端接口没有做检查,可以直接访问接口。
js 源码可以直接在浏览器修改.这个我不知道你是什么意思.前端程序文件虽然运行在用户浏览器.用户可以查看(一堆乱码,已经压缩混淆过的).但是用户是无法编辑的啊.你可以试着编辑下这个 v2 的 JS 代码.你看能编辑么?
我作为一个已经登陆过的用户,直接打开一个网站的详情页面:xxx.com/secrets/1
是不是又要重新拿一遍路由数据?
用 fiddler 可以修改数据,或者我伪造一个本地的 DNS,伪造路由接口的数据
我在本地拦截这个请求,修改 response 。
https://blog.csdn.net/hqzxsc2006/article/details/47041979
@yaphets666
你意思 fiddler 可以拦截 HTTPS 的某个特定的请求返回假数据?如果这样的话确实可以. 不过应该做不到吧 HTTP 的兴许可以,不然 HTTPS 还有什么用呢