云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

消息队列_腾讯云用户数_0元

小七 141 0

消息队列_腾讯云用户数_0元

客户端永远不能提供用户(或实体)身份验证、会话管理和访问授权。处理这些问题超出了本文的范围。有关身份验证的一般信息,您可能需要阅读开放式Web应用程序安全项目(OWASP)的身份验证备忘单。

在这篇文章中,我只想告诉您如何实现访问控制以帮助保护客户端应用程序免受未经授权的使用。虽然我们使用用户的角色来授予或拒绝访问,但这不应理解为基于角色与基于属性的访问控制的声明。

在这里,积分返现,我们只是假设用户已经有一个已验证的会话,并且我们可以从授权服务器获取用户配置文件。我们进一步假设,响应是JSON,包含一些关于用户的基本信息。

首先,我们需要请求用户配置文件并设置相关变量。

注意:下面的代码示例使用OpenUI5库项目中的函数(https://github.com/cahein/oui5lib). 但是,永久免费的云服务器,您可以随意实现功能。

要对相关功能进行分组,请使用名称空间oui5库当前用户正在使用。要请求用户配置文件,oui5lib.request.fetchJson文件功能(https://github.com/cahein/oui5lib/blob/master/webapp/request.js)与回调函数userProfileRequestSucceeded一起使用。

到目前为止,大数据时代纪录片,唯一添加到oui5的函数库当前用户namespace是init函数。在这种情况下,我们肯定希望在解决授权问题之前阻止进一步处理我们的申请。因此,我们同步请求用户配置文件,因为任何进一步的步骤都取决于响应。

如果用户没有所需的授权,他或她显然不能访问应用程序,而是被重定向到noPermissions页面。我们将相关的路由和目标添加到清单:

作为目标视图,我们创建了一个简单的MessagePage。对于生产环境,下面的文本应该是多语言i18n属性。

因为有许多方法可以导航到视图,检查权限的唯一可靠方法是在视图级别。按照普遍的做法,我们根据角色配置权限。让我们创建一个权限.json和添加视图条目。

要加载权限,我们在oui5中请求它库currentuser.init功能。同样,出于与上述相同的原因,请求是同步的。

为了检查用户是否属于所需组,我们在oui5中添加了以下功能库当前用户命名空间。

如果请求的权限.json'无法加载和处理。但是,如果权限映射中没有条目,则假定已授权访问。如果有一个带有空角色数组的条目,则不会授权任何用户。

要检查对特定视图的权限,营销数据分析,我们必须在连接的控制器onInit函数中添加几行。

因为这需要对每个具有目标的视图重复,我们应该通过向自定义基本控制器添加一个函数来进一步简化问题,该函数由各个控制器扩展。

这大大减少了onInit函数中的验证码。

但是,如果恶意用户能够轻易绕过我们的安全预防措施,我们的所有努力都将是徒劳的。到目前为止,覆盖浏览器控制台中的hasPermissionForView功能就足够了。

为了使冻结所涉及的对象变得更加困难,这样以后就不能修改它们。

现在,我们应该准备好一切来有效地使用oui5库当前用户对象。在初始化路由器之前,初始化它的最佳位置是组件初始化函数。

除非oui5库当前用户对象可用。当它可用时,云分析,将调用init函数。它将请求用户配置文件并获取配置的权限。为了防止容易被篡改,我们冻结了用户对象和请求代码。

也许有办法破解这个解决方案,但我不知道如何破解