开发用户与管理员共用页面:普通用户能否通过审查启用管理专属按钮?
问题解答
核心结论
普通用户可以通过网页审查工具显示隐藏的管理员按钮,但能不能执行对应的管理员操作,关键看后端是否做了权限校验。
具体分析
- 前端用
display: none;隐藏按钮只是视觉层面的遮挡,按钮对应的DOM元素仍在页面代码里。普通用户打开浏览器审查工具(比如Chrome开发者工具),直接修改元素的CSS样式(把display: none;改成display: block;或者删掉该样式),就能让按钮显示出来。 - 如果点击按钮后的操作,前端仅通过判断
user_id是否为2就执行,没有后端的权限验证,那用户甚至可以直接修改前端的user_id值(比如把ref('1')改成ref('2')),触发管理员操作。 - 但如果后端在处理请求时,会通过token、session等方式验证用户的真实身份权限,那就算用户显示了按钮、篡改了前端的
user_id,后端也会拒绝执行操作——因为前端数据完全可以被篡改,不能作为权限判断的依据。
正确的权限管控方式
- 前端的隐藏/显示只是优化用户体验,绝不能作为权限控制的核心。
- 所有涉及权限的操作,必须在后端完成校验:每次用户执行敏感操作时,后端先验证用户的真实身份和权限,再决定是否执行。
- 敏感数据和核心操作逻辑不要暴露在前端,避免被恶意利用。
内容的提问来源于stack exchange,提问作者Mikael Tenshio
相关产品推荐
相关产品推荐

