SCW图标
英雄背景无分隔线
博客

程序员征服安全:分享与学习系列——访问控制失效

Jaap Karan Singh
发布于 2019 年 5 月 09 日
最后更新于 2026年3月10日

在构建业务应用程序时,无论是供客户内部使用还是外部使用,都可能不会让每个用户执行每一项功能。如果这样做,则可能容易受到访问控制中断的影响。

让我们来看看什么是失效的访问控制,为什么它如此危险,以及如何修复它。

了解失效的访问控制

当应用程序代码没有适当的安全性或访问检查时,就会出现访问控制中断。当应用程序以某种方式配置错误,允许访问用户不应访问的功能或页面时,也会发生这种情况。

如果您负责公司的财务,则可以将资金存入某些账户或在公司的账户之间转账。但是,您不应有权从这些账户中提取现金或向其他账户转账。如果没有适当的访问检查,则您的员工可能能够执行不必要的更多职能。

这些检查可以在代码中完成,也可以在配置文件中完成。例如,可能有 XML 配置文件告诉 Web 应用程序框架允许哪些用户访问哪些页面。这样可以确保用户只能访问他们有权使用的功能。

为什么访问控制失效很危险

以这个例子为例:攻击者已经意识到你的用户账户创建代码可以被操纵,允许攻击者通过简单的发布请求创建管理员用户。他们可以使用用户名和密码发送请求,然后在途中进行更改,将管理员角色作为参数包含在 URL 中或请求正文中。攻击者登录应用程序并立即获得管理员权限。

它不一定总是渗透系统的恶意攻击者。如果没有适当的访问控制,不应该在部门之间共享的敏感信息可能会泄露。想象一下公司中是否有任何员工可以看到人力资源工资数据或财务数据。如果有员工看到裁员是由于公司财务状况不佳而出现的,会发生什么?这可能会损害您的士气和公司的声誉。

客户的敏感信息也可能丢失。公司经常存储使用其服务的客户的个人信息。注意不要因为缺乏访问控制而意外暴露此信息。例如,如果你的系统允许用户请求他们的健康记录,他们是否也有权请求和查看他人的健康信息?如果 URL 包含客户 ID 号,攻击者可以一遍又一遍地增加该客户 ID 号,直到找到与另一位客户相匹配的客户 ID 号,从而泄露他们的个人数据。

打败失效的访问控制

基于角色的访问控制 (RBAC) 是实现健全访问控制的非常有效的工具。那些使用 Active Directory 的人可能熟悉以下想法 创建群组 并允许整个群体访问某些物品,而不是个人。应用程序的工作方式相同,使用角色来定义允许谁查看什么。

这有两个优点。首先,当有人离开管理员角色时,不必更改功能。如果某人以前是管理员,但现在不应再是管理员,那么您只需将一个新人员置于管理员角色中,然后将以前的人员从该角色中移除即可。该代码检查用户是否具有管理员角色,而不是检查每个用户是否有权访问某个页面或功能。

第二个好处是避免了维护噩梦。如果访问控制非常精细,以至于每个人都与每一个可能的功能或页面都有关联,随着时间的推移将无法进行管理。角色使事情变得容易得多,因为可以将多个人添加到一个角色中。一个职位可能包括整个公司,而另一个职位可能只有五个人。这使得管理角色的效率更高,因为要管理的角色将减少。一个拥有 10,000 人的公司只能拥有 100 个角色,而不是应用程序中职能数量的 10,000 倍。研究您选择的应用程序框架,看看有哪些选项可以实现强大的访问控制。

使用功能级访问控制也至关重要。通过要求用户通过某些访问控制检查来保护对所有功能的访问权限。使用最小权限原则,默认拒绝访问,仅在需要时才开放访问权限。可能很难记住为每个功能实现访问控制。使用中央组件来管理和强制执行访问控制。

保护您的敏感功能

访问控制中断可能会使您的数据和应用程序完全容易受到攻击和利用。未得到适当保护的客户数据可能会导致大规模数据泄露,从而损害您的声誉和收入。

如果攻击者能够访问他们不应该访问的功能,则访问控制中断也可能导致账户被盗用。使用适当的功能级别访问控制,可以保护应用程序免受恶意攻击者甚至意外内部人员的侵害。

认为你已经完成了功能级别的访问权限吗?您现在可以挑战自己修复损坏的访问控制: [从这里开始]

查看资源
查看资源

在构建业务应用程序时,无论是供客户内部使用还是外部使用,都可能不会让每个用户执行每一项功能。如果这样做,则可能容易受到访问控制中断的影响。

对更多感兴趣?

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

了解更多

Secure Code Warrior可帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全置于首位的文化。无论您是应用安全经理、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能帮助您的组织降低与不安全代码相关的风险。

预约演示
分享到:
领英品牌社交x 标志
作者
Jaap Karan Singh
2019年5月9日出版

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

分享到:
领英品牌社交x 标志

在构建业务应用程序时,无论是供客户内部使用还是外部使用,都可能不会让每个用户执行每一项功能。如果这样做,则可能容易受到访问控制中断的影响。

让我们来看看什么是失效的访问控制,为什么它如此危险,以及如何修复它。

了解失效的访问控制

当应用程序代码没有适当的安全性或访问检查时,就会出现访问控制中断。当应用程序以某种方式配置错误,允许访问用户不应访问的功能或页面时,也会发生这种情况。

如果您负责公司的财务,则可以将资金存入某些账户或在公司的账户之间转账。但是,您不应有权从这些账户中提取现金或向其他账户转账。如果没有适当的访问检查,则您的员工可能能够执行不必要的更多职能。

这些检查可以在代码中完成,也可以在配置文件中完成。例如,可能有 XML 配置文件告诉 Web 应用程序框架允许哪些用户访问哪些页面。这样可以确保用户只能访问他们有权使用的功能。

为什么访问控制失效很危险

以这个例子为例:攻击者已经意识到你的用户账户创建代码可以被操纵,允许攻击者通过简单的发布请求创建管理员用户。他们可以使用用户名和密码发送请求,然后在途中进行更改,将管理员角色作为参数包含在 URL 中或请求正文中。攻击者登录应用程序并立即获得管理员权限。

它不一定总是渗透系统的恶意攻击者。如果没有适当的访问控制,不应该在部门之间共享的敏感信息可能会泄露。想象一下公司中是否有任何员工可以看到人力资源工资数据或财务数据。如果有员工看到裁员是由于公司财务状况不佳而出现的,会发生什么?这可能会损害您的士气和公司的声誉。

客户的敏感信息也可能丢失。公司经常存储使用其服务的客户的个人信息。注意不要因为缺乏访问控制而意外暴露此信息。例如,如果你的系统允许用户请求他们的健康记录,他们是否也有权请求和查看他人的健康信息?如果 URL 包含客户 ID 号,攻击者可以一遍又一遍地增加该客户 ID 号,直到找到与另一位客户相匹配的客户 ID 号,从而泄露他们的个人数据。

打败失效的访问控制

基于角色的访问控制 (RBAC) 是实现健全访问控制的非常有效的工具。那些使用 Active Directory 的人可能熟悉以下想法 创建群组 并允许整个群体访问某些物品,而不是个人。应用程序的工作方式相同,使用角色来定义允许谁查看什么。

这有两个优点。首先,当有人离开管理员角色时,不必更改功能。如果某人以前是管理员,但现在不应再是管理员,那么您只需将一个新人员置于管理员角色中,然后将以前的人员从该角色中移除即可。该代码检查用户是否具有管理员角色,而不是检查每个用户是否有权访问某个页面或功能。

第二个好处是避免了维护噩梦。如果访问控制非常精细,以至于每个人都与每一个可能的功能或页面都有关联,随着时间的推移将无法进行管理。角色使事情变得容易得多,因为可以将多个人添加到一个角色中。一个职位可能包括整个公司,而另一个职位可能只有五个人。这使得管理角色的效率更高,因为要管理的角色将减少。一个拥有 10,000 人的公司只能拥有 100 个角色,而不是应用程序中职能数量的 10,000 倍。研究您选择的应用程序框架,看看有哪些选项可以实现强大的访问控制。

使用功能级访问控制也至关重要。通过要求用户通过某些访问控制检查来保护对所有功能的访问权限。使用最小权限原则,默认拒绝访问,仅在需要时才开放访问权限。可能很难记住为每个功能实现访问控制。使用中央组件来管理和强制执行访问控制。

保护您的敏感功能

访问控制中断可能会使您的数据和应用程序完全容易受到攻击和利用。未得到适当保护的客户数据可能会导致大规模数据泄露,从而损害您的声誉和收入。

如果攻击者能够访问他们不应该访问的功能,则访问控制中断也可能导致账户被盗用。使用适当的功能级别访问控制,可以保护应用程序免受恶意攻击者甚至意外内部人员的侵害。

认为你已经完成了功能级别的访问权限吗?您现在可以挑战自己修复损坏的访问控制: [从这里开始]

查看资源
查看资源

填写下面的表格下载报告

我们希望获得您的许可,以便向您发送有关我们的产品和/或相关安全编码主题的信息。我们将始终非常谨慎地对待您的个人信息,绝不会出于营销目的将其出售给其他公司。

提交
scw 成功图标
SCW 错误图标
要提交表单,请启用“分析”Cookie。完成后,可以随意再次禁用它们。

在构建业务应用程序时,无论是供客户内部使用还是外部使用,都可能不会让每个用户执行每一项功能。如果这样做,则可能容易受到访问控制中断的影响。

让我们来看看什么是失效的访问控制,为什么它如此危险,以及如何修复它。

了解失效的访问控制

当应用程序代码没有适当的安全性或访问检查时,就会出现访问控制中断。当应用程序以某种方式配置错误,允许访问用户不应访问的功能或页面时,也会发生这种情况。

如果您负责公司的财务,则可以将资金存入某些账户或在公司的账户之间转账。但是,您不应有权从这些账户中提取现金或向其他账户转账。如果没有适当的访问检查,则您的员工可能能够执行不必要的更多职能。

这些检查可以在代码中完成,也可以在配置文件中完成。例如,可能有 XML 配置文件告诉 Web 应用程序框架允许哪些用户访问哪些页面。这样可以确保用户只能访问他们有权使用的功能。

为什么访问控制失效很危险

以这个例子为例:攻击者已经意识到你的用户账户创建代码可以被操纵,允许攻击者通过简单的发布请求创建管理员用户。他们可以使用用户名和密码发送请求,然后在途中进行更改,将管理员角色作为参数包含在 URL 中或请求正文中。攻击者登录应用程序并立即获得管理员权限。

它不一定总是渗透系统的恶意攻击者。如果没有适当的访问控制,不应该在部门之间共享的敏感信息可能会泄露。想象一下公司中是否有任何员工可以看到人力资源工资数据或财务数据。如果有员工看到裁员是由于公司财务状况不佳而出现的,会发生什么?这可能会损害您的士气和公司的声誉。

客户的敏感信息也可能丢失。公司经常存储使用其服务的客户的个人信息。注意不要因为缺乏访问控制而意外暴露此信息。例如,如果你的系统允许用户请求他们的健康记录,他们是否也有权请求和查看他人的健康信息?如果 URL 包含客户 ID 号,攻击者可以一遍又一遍地增加该客户 ID 号,直到找到与另一位客户相匹配的客户 ID 号,从而泄露他们的个人数据。

打败失效的访问控制

基于角色的访问控制 (RBAC) 是实现健全访问控制的非常有效的工具。那些使用 Active Directory 的人可能熟悉以下想法 创建群组 并允许整个群体访问某些物品,而不是个人。应用程序的工作方式相同,使用角色来定义允许谁查看什么。

这有两个优点。首先,当有人离开管理员角色时,不必更改功能。如果某人以前是管理员,但现在不应再是管理员,那么您只需将一个新人员置于管理员角色中,然后将以前的人员从该角色中移除即可。该代码检查用户是否具有管理员角色,而不是检查每个用户是否有权访问某个页面或功能。

第二个好处是避免了维护噩梦。如果访问控制非常精细,以至于每个人都与每一个可能的功能或页面都有关联,随着时间的推移将无法进行管理。角色使事情变得容易得多,因为可以将多个人添加到一个角色中。一个职位可能包括整个公司,而另一个职位可能只有五个人。这使得管理角色的效率更高,因为要管理的角色将减少。一个拥有 10,000 人的公司只能拥有 100 个角色,而不是应用程序中职能数量的 10,000 倍。研究您选择的应用程序框架,看看有哪些选项可以实现强大的访问控制。

使用功能级访问控制也至关重要。通过要求用户通过某些访问控制检查来保护对所有功能的访问权限。使用最小权限原则,默认拒绝访问,仅在需要时才开放访问权限。可能很难记住为每个功能实现访问控制。使用中央组件来管理和强制执行访问控制。

保护您的敏感功能

访问控制中断可能会使您的数据和应用程序完全容易受到攻击和利用。未得到适当保护的客户数据可能会导致大规模数据泄露,从而损害您的声誉和收入。

如果攻击者能够访问他们不应该访问的功能,则访问控制中断也可能导致账户被盗用。使用适当的功能级别访问控制,可以保护应用程序免受恶意攻击者甚至意外内部人员的侵害。

认为你已经完成了功能级别的访问权限吗?您现在可以挑战自己修复损坏的访问控制: [从这里开始]

观看网络研讨会
开始吧
了解更多

点击下面的链接并下载此资源的PDF。

Secure Code Warrior可帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全置于首位的文化。无论您是应用安全经理、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能帮助您的组织降低与不安全代码相关的风险。

查看报告预约演示
查看资源
分享到:
领英品牌社交x 标志
对更多感兴趣?

分享到:
领英品牌社交x 标志
作者
Jaap Karan Singh
2019年5月9日出版

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

分享到:
领英品牌社交x 标志

在构建业务应用程序时,无论是供客户内部使用还是外部使用,都可能不会让每个用户执行每一项功能。如果这样做,则可能容易受到访问控制中断的影响。

让我们来看看什么是失效的访问控制,为什么它如此危险,以及如何修复它。

了解失效的访问控制

当应用程序代码没有适当的安全性或访问检查时,就会出现访问控制中断。当应用程序以某种方式配置错误,允许访问用户不应访问的功能或页面时,也会发生这种情况。

如果您负责公司的财务,则可以将资金存入某些账户或在公司的账户之间转账。但是,您不应有权从这些账户中提取现金或向其他账户转账。如果没有适当的访问检查,则您的员工可能能够执行不必要的更多职能。

这些检查可以在代码中完成,也可以在配置文件中完成。例如,可能有 XML 配置文件告诉 Web 应用程序框架允许哪些用户访问哪些页面。这样可以确保用户只能访问他们有权使用的功能。

为什么访问控制失效很危险

以这个例子为例:攻击者已经意识到你的用户账户创建代码可以被操纵,允许攻击者通过简单的发布请求创建管理员用户。他们可以使用用户名和密码发送请求,然后在途中进行更改,将管理员角色作为参数包含在 URL 中或请求正文中。攻击者登录应用程序并立即获得管理员权限。

它不一定总是渗透系统的恶意攻击者。如果没有适当的访问控制,不应该在部门之间共享的敏感信息可能会泄露。想象一下公司中是否有任何员工可以看到人力资源工资数据或财务数据。如果有员工看到裁员是由于公司财务状况不佳而出现的,会发生什么?这可能会损害您的士气和公司的声誉。

客户的敏感信息也可能丢失。公司经常存储使用其服务的客户的个人信息。注意不要因为缺乏访问控制而意外暴露此信息。例如,如果你的系统允许用户请求他们的健康记录,他们是否也有权请求和查看他人的健康信息?如果 URL 包含客户 ID 号,攻击者可以一遍又一遍地增加该客户 ID 号,直到找到与另一位客户相匹配的客户 ID 号,从而泄露他们的个人数据。

打败失效的访问控制

基于角色的访问控制 (RBAC) 是实现健全访问控制的非常有效的工具。那些使用 Active Directory 的人可能熟悉以下想法 创建群组 并允许整个群体访问某些物品,而不是个人。应用程序的工作方式相同,使用角色来定义允许谁查看什么。

这有两个优点。首先,当有人离开管理员角色时,不必更改功能。如果某人以前是管理员,但现在不应再是管理员,那么您只需将一个新人员置于管理员角色中,然后将以前的人员从该角色中移除即可。该代码检查用户是否具有管理员角色,而不是检查每个用户是否有权访问某个页面或功能。

第二个好处是避免了维护噩梦。如果访问控制非常精细,以至于每个人都与每一个可能的功能或页面都有关联,随着时间的推移将无法进行管理。角色使事情变得容易得多,因为可以将多个人添加到一个角色中。一个职位可能包括整个公司,而另一个职位可能只有五个人。这使得管理角色的效率更高,因为要管理的角色将减少。一个拥有 10,000 人的公司只能拥有 100 个角色,而不是应用程序中职能数量的 10,000 倍。研究您选择的应用程序框架,看看有哪些选项可以实现强大的访问控制。

使用功能级访问控制也至关重要。通过要求用户通过某些访问控制检查来保护对所有功能的访问权限。使用最小权限原则,默认拒绝访问,仅在需要时才开放访问权限。可能很难记住为每个功能实现访问控制。使用中央组件来管理和强制执行访问控制。

保护您的敏感功能

访问控制中断可能会使您的数据和应用程序完全容易受到攻击和利用。未得到适当保护的客户数据可能会导致大规模数据泄露,从而损害您的声誉和收入。

如果攻击者能够访问他们不应该访问的功能,则访问控制中断也可能导致账户被盗用。使用适当的功能级别访问控制,可以保护应用程序免受恶意攻击者甚至意外内部人员的侵害。

认为你已经完成了功能级别的访问权限吗?您现在可以挑战自己修复损坏的访问控制: [从这里开始]

目录

下载PDF
查看资源
对更多感兴趣?

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

了解更多

Secure Code Warrior可帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全置于首位的文化。无论您是应用安全经理、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能帮助您的组织降低与不安全代码相关的风险。

预约演示下载
分享到:
领英品牌社交x 标志
资源中心

帮助您入门的资源

更多帖子
资源中心

帮助您入门的资源

更多帖子