Javascript 由于权限原因,客户端呈现和隐藏功能
我一直是一名服务器端渲染开发人员JSP/Struts,我们正在转向客户端渲染VueJS。我认为100%客户端渲染是一个安全“问题”。在这种情况下,返回到浏览器的HTML将包含所有功能,即使特定用户可能未被授权执行某些操作,因此也不会被呈现。例如,想象一个显示小部件的页面。有一个“删除小部件”按钮,单击该按钮可调用/Widget/Delete。此用户没有执行删除操作的权限。不显示Delete按钮没有问题,当然,服务器端代码将检查授权并拒绝任何未授权的用户。但我觉得即使没有呈现,也将HTML片段返回到浏览器是不好的。我想得太多了吗?您的应用程序支持删除已不是什么秘密Javascript 由于权限原因,客户端呈现和隐藏功能,javascript,authorization,Javascript,Authorization,我一直是一名服务器端渲染开发人员JSP/Struts,我们正在转向客户端渲染VueJS。我认为100%客户端渲染是一个安全“问题”。在这种情况下,返回到浏览器的HTML将包含所有功能,即使特定用户可能未被授权执行某些操作,因此也不会被呈现。例如,想象一个显示小部件的页面。有一个“删除小部件”按钮,单击该按钮可调用/Widget/Delete。此用户没有执行删除操作的权限。不显示Delete按钮没有问题,当然,服务器端代码将检查授权并拒绝任何未授权的用户。但我觉得即使没有呈现,也将HTML片段返回
只要/Widget/delete入口点通过身份验证、授权和CSRF保护得到了适当的保护,下载调用它的代码就不会产生任何安全问题。您将权限绑定到用户。您可以在客户端执行的任何特定于用户的操作都应该与需要用户信息(例如访问令牌)的API通信,以评估每个操作。有了这个,就不再那么不安全了。根据用户信息,提供API的系统可以决定允许或拒绝该操作。用户可能能够在inspector中启用该按钮,但单击该按钮将得到一个错误消息。那么您觉得在源代码中公开是可以的,而不是用户无法执行的呈现页面功能?在我看来,用户甚至不应该知道Widget/delete的存在。