OpenUI5版本:1.86浏览器/版本(+设备/版本(:Chrome Dev
身份验证后,我验证用户会话:
if (isUserSessionValid) {
const oRouter = UIComponent.getRouterFor(this);
oRouter.navTo("overview");
} else {
this.getOwnerComponent().openAuthDialog();
}
如果isUserSessionValid
为true,则我将用户转发到内部页面,否则我将显示登录对话框。
然而,问题是,用户可以在DevTools中更改isUserSessionValid
的值,然后转发到UI5应用程序的内部页面。当然,由于缺少有效的会话,将不会显示任何业务数据,只有一个空的UI5应用程序模板,但我想防止出现这样的屏幕。
如果它是一个经典的网络应用程序,我只会发送一个适当的服务器响应,并重定向到登录页面(例如res.redirect(403, "/login");
(。但是,如果我理解正确的话,因为我发送的是异步请求,所以普通的res.redirect
是行不通的,我需要在UI5客户端上实现重定向逻辑,用户可以操纵和绕过它。
如何防止在UI5中操纵视图导航,并确保未经授权的用户无法获得UI5应用程序的任何代码?
SAP的答案:
如果要防止未经授权的用户访问客户端代码(例如视图/控制器(,则需要强制执行服务器上的授权也针对那些静态文件。捆绑时您还需要确保这些文件与";"公共";文件。一种方法是使用2单独的组件,一个用于公共页面/auth对话框,另一个用于实际应用