
程序员征服安全:分享与学习系列——访问控制失效
在构建业务应用程序时,无论是供客户内部使用还是外部使用,都可能不会让每个用户执行每一项功能。如果这样做,则可能容易受到访问控制中断的影响。
让我们来看看什么是失效的访问控制,为什么它如此危险,以及如何修复它。
了解失效的访问控制
当应用程序代码没有适当的安全性或访问检查时,就会出现访问控制中断。当应用程序以某种方式配置错误,允许访问用户不应访问的功能或页面时,也会发生这种情况。
如果您负责公司的财务,则可以将资金存入某些账户或在公司的账户之间转账。但是,您不应有权从这些账户中提取现金或向其他账户转账。如果没有适当的访问检查,则您的员工可能能够执行不必要的更多职能。
这些检查可以在代码中完成,也可以在配置文件中完成。例如,可能有 XML 配置文件告诉 Web 应用程序框架允许哪些用户访问哪些页面。这样可以确保用户只能访问他们有权使用的功能。
为什么访问控制失效很危险
以这个例子为例:攻击者已经意识到你的用户账户创建代码可以被操纵,允许攻击者通过简单的发布请求创建管理员用户。他们可以使用用户名和密码发送请求,然后在途中进行更改,将管理员角色作为参数包含在 URL 中或请求正文中。攻击者登录应用程序并立即获得管理员权限。
它不一定总是渗透系统的恶意攻击者。如果没有适当的访问控制,不应该在部门之间共享的敏感信息可能会泄露。想象一下公司中是否有任何员工可以看到人力资源工资数据或财务数据。如果有员工看到裁员是由于公司财务状况不佳而出现的,会发生什么?这可能会损害您的士气和公司的声誉。
客户的敏感信息也可能丢失。公司经常存储使用其服务的客户的个人信息。注意不要因为缺乏访问控制而意外暴露此信息。例如,如果你的系统允许用户请求他们的健康记录,他们是否也有权请求和查看他人的健康信息?如果 URL 包含客户 ID 号,攻击者可以一遍又一遍地增加该客户 ID 号,直到找到与另一位客户相匹配的客户 ID 号,从而泄露他们的个人数据。
打败失效的访问控制
基于角色的访问控制 (RBAC) 是实现健全访问控制的非常有效的工具。那些使用 Active Directory 的人可能熟悉以下想法 创建群组 并允许整个群体访问某些物品,而不是个人。应用程序的工作方式相同,使用角色来定义允许谁查看什么。
这有两个优点。首先,当有人离开管理员角色时,不必更改功能。如果某人以前是管理员,但现在不应再是管理员,那么您只需将一个新人员置于管理员角色中,然后将以前的人员从该角色中移除即可。该代码检查用户是否具有管理员角色,而不是检查每个用户是否有权访问某个页面或功能。
第二个好处是避免了维护噩梦。如果访问控制非常精细,以至于每个人都与每一个可能的功能或页面都有关联,随着时间的推移将无法进行管理。角色使事情变得容易得多,因为可以将多个人添加到一个角色中。一个职位可能包括整个公司,而另一个职位可能只有五个人。这使得管理角色的效率更高,因为要管理的角色将减少。一个拥有 10,000 人的公司只能拥有 100 个角色,而不是应用程序中职能数量的 10,000 倍。研究您选择的应用程序框架,看看有哪些选项可以实现强大的访问控制。
使用功能级访问控制也至关重要。通过要求用户通过某些访问控制检查来保护对所有功能的访问权限。使用最小权限原则,默认拒绝访问,仅在需要时才开放访问权限。可能很难记住为每个功能实现访问控制。使用中央组件来管理和强制执行访问控制。
保护您的敏感功能
访问控制中断可能会使您的数据和应用程序完全容易受到攻击和利用。未得到适当保护的客户数据可能会导致大规模数据泄露,从而损害您的声誉和收入。
如果攻击者能够访问他们不应该访问的功能,则访问控制中断也可能导致账户被盗用。使用适当的功能级别访问控制,可以保护应用程序免受恶意攻击者甚至意外内部人员的侵害。
认为你已经完成了功能级别的访问权限吗?您现在可以挑战自己修复损坏的访问控制: [从这里开始]
Jaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。

Secure Code Warriorは、ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先とする文化を醸成するお手伝いをします。AppSecマネージャー、開発者、最高情報セキュリティ責任者(CISO)、あるいはセキュリティに関わるあらゆる方々の組織において、不安全なコードに関連するリスクの低減を支援します。
デモを予約するJaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。


在构建业务应用程序时,无论是供客户内部使用还是外部使用,都可能不会让每个用户执行每一项功能。如果这样做,则可能容易受到访问控制中断的影响。
让我们来看看什么是失效的访问控制,为什么它如此危险,以及如何修复它。
了解失效的访问控制
当应用程序代码没有适当的安全性或访问检查时,就会出现访问控制中断。当应用程序以某种方式配置错误,允许访问用户不应访问的功能或页面时,也会发生这种情况。
如果您负责公司的财务,则可以将资金存入某些账户或在公司的账户之间转账。但是,您不应有权从这些账户中提取现金或向其他账户转账。如果没有适当的访问检查,则您的员工可能能够执行不必要的更多职能。
这些检查可以在代码中完成,也可以在配置文件中完成。例如,可能有 XML 配置文件告诉 Web 应用程序框架允许哪些用户访问哪些页面。这样可以确保用户只能访问他们有权使用的功能。
为什么访问控制失效很危险
以这个例子为例:攻击者已经意识到你的用户账户创建代码可以被操纵,允许攻击者通过简单的发布请求创建管理员用户。他们可以使用用户名和密码发送请求,然后在途中进行更改,将管理员角色作为参数包含在 URL 中或请求正文中。攻击者登录应用程序并立即获得管理员权限。
它不一定总是渗透系统的恶意攻击者。如果没有适当的访问控制,不应该在部门之间共享的敏感信息可能会泄露。想象一下公司中是否有任何员工可以看到人力资源工资数据或财务数据。如果有员工看到裁员是由于公司财务状况不佳而出现的,会发生什么?这可能会损害您的士气和公司的声誉。
客户的敏感信息也可能丢失。公司经常存储使用其服务的客户的个人信息。注意不要因为缺乏访问控制而意外暴露此信息。例如,如果你的系统允许用户请求他们的健康记录,他们是否也有权请求和查看他人的健康信息?如果 URL 包含客户 ID 号,攻击者可以一遍又一遍地增加该客户 ID 号,直到找到与另一位客户相匹配的客户 ID 号,从而泄露他们的个人数据。
打败失效的访问控制
基于角色的访问控制 (RBAC) 是实现健全访问控制的非常有效的工具。那些使用 Active Directory 的人可能熟悉以下想法 创建群组 并允许整个群体访问某些物品,而不是个人。应用程序的工作方式相同,使用角色来定义允许谁查看什么。
这有两个优点。首先,当有人离开管理员角色时,不必更改功能。如果某人以前是管理员,但现在不应再是管理员,那么您只需将一个新人员置于管理员角色中,然后将以前的人员从该角色中移除即可。该代码检查用户是否具有管理员角色,而不是检查每个用户是否有权访问某个页面或功能。
第二个好处是避免了维护噩梦。如果访问控制非常精细,以至于每个人都与每一个可能的功能或页面都有关联,随着时间的推移将无法进行管理。角色使事情变得容易得多,因为可以将多个人添加到一个角色中。一个职位可能包括整个公司,而另一个职位可能只有五个人。这使得管理角色的效率更高,因为要管理的角色将减少。一个拥有 10,000 人的公司只能拥有 100 个角色,而不是应用程序中职能数量的 10,000 倍。研究您选择的应用程序框架,看看有哪些选项可以实现强大的访问控制。
使用功能级访问控制也至关重要。通过要求用户通过某些访问控制检查来保护对所有功能的访问权限。使用最小权限原则,默认拒绝访问,仅在需要时才开放访问权限。可能很难记住为每个功能实现访问控制。使用中央组件来管理和强制执行访问控制。
保护您的敏感功能
访问控制中断可能会使您的数据和应用程序完全容易受到攻击和利用。未得到适当保护的客户数据可能会导致大规模数据泄露,从而损害您的声誉和收入。
如果攻击者能够访问他们不应该访问的功能,则访问控制中断也可能导致账户被盗用。使用适当的功能级别访问控制,可以保护应用程序免受恶意攻击者甚至意外内部人员的侵害。
认为你已经完成了功能级别的访问权限吗?您现在可以挑战自己修复损坏的访问控制: [从这里开始]

在构建业务应用程序时,无论是供客户内部使用还是外部使用,都可能不会让每个用户执行每一项功能。如果这样做,则可能容易受到访问控制中断的影响。
让我们来看看什么是失效的访问控制,为什么它如此危险,以及如何修复它。
了解失效的访问控制
当应用程序代码没有适当的安全性或访问检查时,就会出现访问控制中断。当应用程序以某种方式配置错误,允许访问用户不应访问的功能或页面时,也会发生这种情况。
如果您负责公司的财务,则可以将资金存入某些账户或在公司的账户之间转账。但是,您不应有权从这些账户中提取现金或向其他账户转账。如果没有适当的访问检查,则您的员工可能能够执行不必要的更多职能。
这些检查可以在代码中完成,也可以在配置文件中完成。例如,可能有 XML 配置文件告诉 Web 应用程序框架允许哪些用户访问哪些页面。这样可以确保用户只能访问他们有权使用的功能。
为什么访问控制失效很危险
以这个例子为例:攻击者已经意识到你的用户账户创建代码可以被操纵,允许攻击者通过简单的发布请求创建管理员用户。他们可以使用用户名和密码发送请求,然后在途中进行更改,将管理员角色作为参数包含在 URL 中或请求正文中。攻击者登录应用程序并立即获得管理员权限。
它不一定总是渗透系统的恶意攻击者。如果没有适当的访问控制,不应该在部门之间共享的敏感信息可能会泄露。想象一下公司中是否有任何员工可以看到人力资源工资数据或财务数据。如果有员工看到裁员是由于公司财务状况不佳而出现的,会发生什么?这可能会损害您的士气和公司的声誉。
客户的敏感信息也可能丢失。公司经常存储使用其服务的客户的个人信息。注意不要因为缺乏访问控制而意外暴露此信息。例如,如果你的系统允许用户请求他们的健康记录,他们是否也有权请求和查看他人的健康信息?如果 URL 包含客户 ID 号,攻击者可以一遍又一遍地增加该客户 ID 号,直到找到与另一位客户相匹配的客户 ID 号,从而泄露他们的个人数据。
打败失效的访问控制
基于角色的访问控制 (RBAC) 是实现健全访问控制的非常有效的工具。那些使用 Active Directory 的人可能熟悉以下想法 创建群组 并允许整个群体访问某些物品,而不是个人。应用程序的工作方式相同,使用角色来定义允许谁查看什么。
这有两个优点。首先,当有人离开管理员角色时,不必更改功能。如果某人以前是管理员,但现在不应再是管理员,那么您只需将一个新人员置于管理员角色中,然后将以前的人员从该角色中移除即可。该代码检查用户是否具有管理员角色,而不是检查每个用户是否有权访问某个页面或功能。
第二个好处是避免了维护噩梦。如果访问控制非常精细,以至于每个人都与每一个可能的功能或页面都有关联,随着时间的推移将无法进行管理。角色使事情变得容易得多,因为可以将多个人添加到一个角色中。一个职位可能包括整个公司,而另一个职位可能只有五个人。这使得管理角色的效率更高,因为要管理的角色将减少。一个拥有 10,000 人的公司只能拥有 100 个角色,而不是应用程序中职能数量的 10,000 倍。研究您选择的应用程序框架,看看有哪些选项可以实现强大的访问控制。
使用功能级访问控制也至关重要。通过要求用户通过某些访问控制检查来保护对所有功能的访问权限。使用最小权限原则,默认拒绝访问,仅在需要时才开放访问权限。可能很难记住为每个功能实现访问控制。使用中央组件来管理和强制执行访问控制。
保护您的敏感功能
访问控制中断可能会使您的数据和应用程序完全容易受到攻击和利用。未得到适当保护的客户数据可能会导致大规模数据泄露,从而损害您的声誉和收入。
如果攻击者能够访问他们不应该访问的功能,则访问控制中断也可能导致账户被盗用。使用适当的功能级别访问控制,可以保护应用程序免受恶意攻击者甚至意外内部人员的侵害。
认为你已经完成了功能级别的访问权限吗?您现在可以挑战自己修复损坏的访问控制: [从这里开始]

以下のリンクをクリックして、このリソースのPDFをダウンロードしてください。
Secure Code Warriorは、ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先とする文化を醸成するお手伝いをします。AppSecマネージャー、開発者、最高情報セキュリティ責任者(CISO)、あるいはセキュリティに関わるあらゆる方々の組織において、不安全なコードに関連するリスクの低減を支援します。
レポートを確認するデモを予約するJaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。
在构建业务应用程序时,无论是供客户内部使用还是外部使用,都可能不会让每个用户执行每一项功能。如果这样做,则可能容易受到访问控制中断的影响。
让我们来看看什么是失效的访问控制,为什么它如此危险,以及如何修复它。
了解失效的访问控制
当应用程序代码没有适当的安全性或访问检查时,就会出现访问控制中断。当应用程序以某种方式配置错误,允许访问用户不应访问的功能或页面时,也会发生这种情况。
如果您负责公司的财务,则可以将资金存入某些账户或在公司的账户之间转账。但是,您不应有权从这些账户中提取现金或向其他账户转账。如果没有适当的访问检查,则您的员工可能能够执行不必要的更多职能。
这些检查可以在代码中完成,也可以在配置文件中完成。例如,可能有 XML 配置文件告诉 Web 应用程序框架允许哪些用户访问哪些页面。这样可以确保用户只能访问他们有权使用的功能。
为什么访问控制失效很危险
以这个例子为例:攻击者已经意识到你的用户账户创建代码可以被操纵,允许攻击者通过简单的发布请求创建管理员用户。他们可以使用用户名和密码发送请求,然后在途中进行更改,将管理员角色作为参数包含在 URL 中或请求正文中。攻击者登录应用程序并立即获得管理员权限。
它不一定总是渗透系统的恶意攻击者。如果没有适当的访问控制,不应该在部门之间共享的敏感信息可能会泄露。想象一下公司中是否有任何员工可以看到人力资源工资数据或财务数据。如果有员工看到裁员是由于公司财务状况不佳而出现的,会发生什么?这可能会损害您的士气和公司的声誉。
客户的敏感信息也可能丢失。公司经常存储使用其服务的客户的个人信息。注意不要因为缺乏访问控制而意外暴露此信息。例如,如果你的系统允许用户请求他们的健康记录,他们是否也有权请求和查看他人的健康信息?如果 URL 包含客户 ID 号,攻击者可以一遍又一遍地增加该客户 ID 号,直到找到与另一位客户相匹配的客户 ID 号,从而泄露他们的个人数据。
打败失效的访问控制
基于角色的访问控制 (RBAC) 是实现健全访问控制的非常有效的工具。那些使用 Active Directory 的人可能熟悉以下想法 创建群组 并允许整个群体访问某些物品,而不是个人。应用程序的工作方式相同,使用角色来定义允许谁查看什么。
这有两个优点。首先,当有人离开管理员角色时,不必更改功能。如果某人以前是管理员,但现在不应再是管理员,那么您只需将一个新人员置于管理员角色中,然后将以前的人员从该角色中移除即可。该代码检查用户是否具有管理员角色,而不是检查每个用户是否有权访问某个页面或功能。
第二个好处是避免了维护噩梦。如果访问控制非常精细,以至于每个人都与每一个可能的功能或页面都有关联,随着时间的推移将无法进行管理。角色使事情变得容易得多,因为可以将多个人添加到一个角色中。一个职位可能包括整个公司,而另一个职位可能只有五个人。这使得管理角色的效率更高,因为要管理的角色将减少。一个拥有 10,000 人的公司只能拥有 100 个角色,而不是应用程序中职能数量的 10,000 倍。研究您选择的应用程序框架,看看有哪些选项可以实现强大的访问控制。
使用功能级访问控制也至关重要。通过要求用户通过某些访问控制检查来保护对所有功能的访问权限。使用最小权限原则,默认拒绝访问,仅在需要时才开放访问权限。可能很难记住为每个功能实现访问控制。使用中央组件来管理和强制执行访问控制。
保护您的敏感功能
访问控制中断可能会使您的数据和应用程序完全容易受到攻击和利用。未得到适当保护的客户数据可能会导致大规模数据泄露,从而损害您的声誉和收入。
如果攻击者能够访问他们不应该访问的功能,则访问控制中断也可能导致账户被盗用。使用适当的功能级别访问控制,可以保护应用程序免受恶意攻击者甚至意外内部人员的侵害。
认为你已经完成了功能级别的访问权限吗?您现在可以挑战自己修复损坏的访问控制: [从这里开始]




%20(1).avif)
.avif)
