Iconos SCW
héroe bg sin separador
Blog

程序员征服安全:分享与学习系列-业务逻辑问题

Jaap Karan Singh
Publicado el 28 de marzo de 2019
Última actualización el 10 de marzo de 2026

与我们在本Share & Learn系列中介绍的大多数其他漏洞不同,业务逻辑问题与编码错误没有直接关系。尽管编码问题可能是问题的一部分,但业务逻辑错误通常是由首次创建应用程序时的设计缺陷或错误的逻辑假设造成的。

如果用户在使用应用程序时采取了意想不到的操作,则可能会出现业务逻辑问题。这几乎可以是任何事情——从意外取消订单、使用优惠券代码的次数过多,或者干脆跳过预期的步骤并采取应用程序不知道如何处理的操作。利用业务逻辑缺陷甚至不需要任何培训,只需要一个心怀好奇心并愿意跳出框框思考的恶意用户即可。

在本集中,我们将学习:

  • 攻击者如何利用业务逻辑中的缺陷
  • 为什么存在业务逻辑缺陷的应用程序很危险
  • 可以防止业务逻辑错误的技术。

攻击者如何利用业务逻辑问题?

与大多数漏洞不同,我们无法指出可能导致此漏洞的特定代码串。相反,这取决于用户采取意想不到的操作,以及哪些程序不知道如何处理。举个例子,假设银行应用程序允许用户将钱转入其他账户。但是,恶意用户不是汇款,而是尝试向另一个账户汇款负数。银行应用程序将如何反应?它会崩溃吗?它会拒绝转移吗?或者它实际上会向发起转账的用户退款以平衡负数吗?

电子商务网站特别容易受到业务逻辑缺陷的影响,尽管不是独一无二的,因为它们是为许多用户互动而设计的,并且包含许多组件。用户意外取消订单、多次尝试使用单张优惠券,甚至超载购物车的用户,可能会给申请带来意想不到的条件。实际上,没有办法知道程序在遇到未知情况时会如何反应。最好的情况可能是生成错误消息,但不能保证应用程序不会采取更糟糕的操作,例如免费提供商品。

为什么业务逻辑问题很危险?

业务逻辑问题可能极其危险,因为任何人都可以利用这些问题,即使是没有经过编程或黑客培训的人也是如此。实际上,它只需要实验和时间,四处点击并尝试发现应用程序设计响应方式中的缺陷。而且,一旦恶意用户发现网站业务逻辑中的漏洞,你可以打赌他们会尽可能地利用这个漏洞。

最大的危险通常是经济上的,让用户在不付费的情况下购买20台大屏幕电视或类似的东西。但是业务逻辑缺陷也可能导致其他问题。例如,如果保护网站的密码功能不知道如果用户不断点击 “取消” 该怎么做,则可能会让他们完全绕过登录过程。

实际上无法预测业务逻辑问题可能造成多大的损害。通常,问题的第一个迹象是在用户利用问题很久之后才出现的。

修复业务逻辑问题

不幸的是,使用漏洞扫描器等常用工具无助于识别或修复业务逻辑问题,因为业务逻辑问题的测试不容易自动化。避免它们的最佳方法是在开发应用程序时对负面测试用例进行良好的规划、错误处理和测试。这首先需要一组明确定义的业务规则,其中包括应用程序设计要采取的所有可能和预期的操作。

有了业务规则计划,防止业务逻辑缺陷蔓延的最佳方法之一是创建流程图,显示数据和交易应在应用程序内流动的所有可能方式。这包括用户能够做出选择或输入数据的每个实例的建模行为。不断检查以确保流程图中可能的操作与业务规则计划中的功能相匹配。

最后,使用威胁建模来帮助识别设计、实施和测试阶段业务逻辑中的缺陷。作为万无一失的保障,创建程序在遇到任何未特别预期的情况时应采取的操作。这可能很简单,比如拒绝该操作并提醒管理员注意遇到的问题。

有关业务逻辑问题的更多信息

要进一步阅读,你可以看看上的 OWASP 页面 业务逻辑问题。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客

准备好立即寻找和摧毁业务逻辑漏洞了吗?前往平台测试你的技能: [从这里开始]

Ver recursos
Ver recursos

尽管编码问题可能是问题的一部分,但业务逻辑错误通常是由首次创建应用程序时的设计缺陷或错误的逻辑假设造成的。

¿Te interesa saber más?

Jaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.

Más información

Secure Code Warrior puede ayudar a su organización a proteger el código a lo largo de todo el ciclo de vida del desarrollo de software y a crear una cultura que dé prioridad a la ciberseguridad. Tanto si es usted responsable de seguridad de aplicaciones, desarrollador, director de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados al código inseguro.

Reservar una demostración
Compartir en:
marcas de LinkedInSocialx logotipo
Autor
Jaap Karan Singh
Publicado el 28 de marzo de 2019

Jaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.

Compartir en:
marcas de LinkedInSocialx logotipo

与我们在本Share & Learn系列中介绍的大多数其他漏洞不同,业务逻辑问题与编码错误没有直接关系。尽管编码问题可能是问题的一部分,但业务逻辑错误通常是由首次创建应用程序时的设计缺陷或错误的逻辑假设造成的。

如果用户在使用应用程序时采取了意想不到的操作,则可能会出现业务逻辑问题。这几乎可以是任何事情——从意外取消订单、使用优惠券代码的次数过多,或者干脆跳过预期的步骤并采取应用程序不知道如何处理的操作。利用业务逻辑缺陷甚至不需要任何培训,只需要一个心怀好奇心并愿意跳出框框思考的恶意用户即可。

在本集中,我们将学习:

  • 攻击者如何利用业务逻辑中的缺陷
  • 为什么存在业务逻辑缺陷的应用程序很危险
  • 可以防止业务逻辑错误的技术。

攻击者如何利用业务逻辑问题?

与大多数漏洞不同,我们无法指出可能导致此漏洞的特定代码串。相反,这取决于用户采取意想不到的操作,以及哪些程序不知道如何处理。举个例子,假设银行应用程序允许用户将钱转入其他账户。但是,恶意用户不是汇款,而是尝试向另一个账户汇款负数。银行应用程序将如何反应?它会崩溃吗?它会拒绝转移吗?或者它实际上会向发起转账的用户退款以平衡负数吗?

电子商务网站特别容易受到业务逻辑缺陷的影响,尽管不是独一无二的,因为它们是为许多用户互动而设计的,并且包含许多组件。用户意外取消订单、多次尝试使用单张优惠券,甚至超载购物车的用户,可能会给申请带来意想不到的条件。实际上,没有办法知道程序在遇到未知情况时会如何反应。最好的情况可能是生成错误消息,但不能保证应用程序不会采取更糟糕的操作,例如免费提供商品。

为什么业务逻辑问题很危险?

业务逻辑问题可能极其危险,因为任何人都可以利用这些问题,即使是没有经过编程或黑客培训的人也是如此。实际上,它只需要实验和时间,四处点击并尝试发现应用程序设计响应方式中的缺陷。而且,一旦恶意用户发现网站业务逻辑中的漏洞,你可以打赌他们会尽可能地利用这个漏洞。

最大的危险通常是经济上的,让用户在不付费的情况下购买20台大屏幕电视或类似的东西。但是业务逻辑缺陷也可能导致其他问题。例如,如果保护网站的密码功能不知道如果用户不断点击 “取消” 该怎么做,则可能会让他们完全绕过登录过程。

实际上无法预测业务逻辑问题可能造成多大的损害。通常,问题的第一个迹象是在用户利用问题很久之后才出现的。

修复业务逻辑问题

不幸的是,使用漏洞扫描器等常用工具无助于识别或修复业务逻辑问题,因为业务逻辑问题的测试不容易自动化。避免它们的最佳方法是在开发应用程序时对负面测试用例进行良好的规划、错误处理和测试。这首先需要一组明确定义的业务规则,其中包括应用程序设计要采取的所有可能和预期的操作。

有了业务规则计划,防止业务逻辑缺陷蔓延的最佳方法之一是创建流程图,显示数据和交易应在应用程序内流动的所有可能方式。这包括用户能够做出选择或输入数据的每个实例的建模行为。不断检查以确保流程图中可能的操作与业务规则计划中的功能相匹配。

最后,使用威胁建模来帮助识别设计、实施和测试阶段业务逻辑中的缺陷。作为万无一失的保障,创建程序在遇到任何未特别预期的情况时应采取的操作。这可能很简单,比如拒绝该操作并提醒管理员注意遇到的问题。

有关业务逻辑问题的更多信息

要进一步阅读,你可以看看上的 OWASP 页面 业务逻辑问题。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客

准备好立即寻找和摧毁业务逻辑漏洞了吗?前往平台测试你的技能: [从这里开始]

Ver recursos
Ver recursos

Rellene el siguiente formulario para descargar el informe.

Nos gustaría obtener su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación de seguridad. Trataremos su información personal con el máximo cuidado y nunca la venderemos a otras empresas con fines comerciales.

Enviar
Icono de éxito de SCW
Icono de error scw
Para enviar el formulario, habilite las cookies de análisis. Una vez completado, puede desactivarlas nuevamente si lo desea.

与我们在本Share & Learn系列中介绍的大多数其他漏洞不同,业务逻辑问题与编码错误没有直接关系。尽管编码问题可能是问题的一部分,但业务逻辑错误通常是由首次创建应用程序时的设计缺陷或错误的逻辑假设造成的。

如果用户在使用应用程序时采取了意想不到的操作,则可能会出现业务逻辑问题。这几乎可以是任何事情——从意外取消订单、使用优惠券代码的次数过多,或者干脆跳过预期的步骤并采取应用程序不知道如何处理的操作。利用业务逻辑缺陷甚至不需要任何培训,只需要一个心怀好奇心并愿意跳出框框思考的恶意用户即可。

在本集中,我们将学习:

  • 攻击者如何利用业务逻辑中的缺陷
  • 为什么存在业务逻辑缺陷的应用程序很危险
  • 可以防止业务逻辑错误的技术。

攻击者如何利用业务逻辑问题?

与大多数漏洞不同,我们无法指出可能导致此漏洞的特定代码串。相反,这取决于用户采取意想不到的操作,以及哪些程序不知道如何处理。举个例子,假设银行应用程序允许用户将钱转入其他账户。但是,恶意用户不是汇款,而是尝试向另一个账户汇款负数。银行应用程序将如何反应?它会崩溃吗?它会拒绝转移吗?或者它实际上会向发起转账的用户退款以平衡负数吗?

电子商务网站特别容易受到业务逻辑缺陷的影响,尽管不是独一无二的,因为它们是为许多用户互动而设计的,并且包含许多组件。用户意外取消订单、多次尝试使用单张优惠券,甚至超载购物车的用户,可能会给申请带来意想不到的条件。实际上,没有办法知道程序在遇到未知情况时会如何反应。最好的情况可能是生成错误消息,但不能保证应用程序不会采取更糟糕的操作,例如免费提供商品。

为什么业务逻辑问题很危险?

业务逻辑问题可能极其危险,因为任何人都可以利用这些问题,即使是没有经过编程或黑客培训的人也是如此。实际上,它只需要实验和时间,四处点击并尝试发现应用程序设计响应方式中的缺陷。而且,一旦恶意用户发现网站业务逻辑中的漏洞,你可以打赌他们会尽可能地利用这个漏洞。

最大的危险通常是经济上的,让用户在不付费的情况下购买20台大屏幕电视或类似的东西。但是业务逻辑缺陷也可能导致其他问题。例如,如果保护网站的密码功能不知道如果用户不断点击 “取消” 该怎么做,则可能会让他们完全绕过登录过程。

实际上无法预测业务逻辑问题可能造成多大的损害。通常,问题的第一个迹象是在用户利用问题很久之后才出现的。

修复业务逻辑问题

不幸的是,使用漏洞扫描器等常用工具无助于识别或修复业务逻辑问题,因为业务逻辑问题的测试不容易自动化。避免它们的最佳方法是在开发应用程序时对负面测试用例进行良好的规划、错误处理和测试。这首先需要一组明确定义的业务规则,其中包括应用程序设计要采取的所有可能和预期的操作。

有了业务规则计划,防止业务逻辑缺陷蔓延的最佳方法之一是创建流程图,显示数据和交易应在应用程序内流动的所有可能方式。这包括用户能够做出选择或输入数据的每个实例的建模行为。不断检查以确保流程图中可能的操作与业务规则计划中的功能相匹配。

最后,使用威胁建模来帮助识别设计、实施和测试阶段业务逻辑中的缺陷。作为万无一失的保障,创建程序在遇到任何未特别预期的情况时应采取的操作。这可能很简单,比如拒绝该操作并提醒管理员注意遇到的问题。

有关业务逻辑问题的更多信息

要进一步阅读,你可以看看上的 OWASP 页面 业务逻辑问题。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客

准备好立即寻找和摧毁业务逻辑漏洞了吗?前往平台测试你的技能: [从这里开始]

Ver el seminario web
Empecemos.
Más información

Haga clic en el siguiente enlace y descargue el PDF de este recurso.

Secure Code Warrior puede ayudar a su organización a proteger el código a lo largo de todo el ciclo de vida del desarrollo de software y a crear una cultura que dé prioridad a la ciberseguridad. Tanto si es usted responsable de seguridad de aplicaciones, desarrollador, director de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados al código inseguro.

Ver informeReservar una demostración
Ver recursos
Compartir en:
marcas de LinkedInSocialx logotipo
¿Te interesa saber más?

Compartir en:
marcas de LinkedInSocialx logotipo
Autor
Jaap Karan Singh
Publicado el 28 de marzo de 2019

Jaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.

Compartir en:
marcas de LinkedInSocialx logotipo

与我们在本Share & Learn系列中介绍的大多数其他漏洞不同,业务逻辑问题与编码错误没有直接关系。尽管编码问题可能是问题的一部分,但业务逻辑错误通常是由首次创建应用程序时的设计缺陷或错误的逻辑假设造成的。

如果用户在使用应用程序时采取了意想不到的操作,则可能会出现业务逻辑问题。这几乎可以是任何事情——从意外取消订单、使用优惠券代码的次数过多,或者干脆跳过预期的步骤并采取应用程序不知道如何处理的操作。利用业务逻辑缺陷甚至不需要任何培训,只需要一个心怀好奇心并愿意跳出框框思考的恶意用户即可。

在本集中,我们将学习:

  • 攻击者如何利用业务逻辑中的缺陷
  • 为什么存在业务逻辑缺陷的应用程序很危险
  • 可以防止业务逻辑错误的技术。

攻击者如何利用业务逻辑问题?

与大多数漏洞不同,我们无法指出可能导致此漏洞的特定代码串。相反,这取决于用户采取意想不到的操作,以及哪些程序不知道如何处理。举个例子,假设银行应用程序允许用户将钱转入其他账户。但是,恶意用户不是汇款,而是尝试向另一个账户汇款负数。银行应用程序将如何反应?它会崩溃吗?它会拒绝转移吗?或者它实际上会向发起转账的用户退款以平衡负数吗?

电子商务网站特别容易受到业务逻辑缺陷的影响,尽管不是独一无二的,因为它们是为许多用户互动而设计的,并且包含许多组件。用户意外取消订单、多次尝试使用单张优惠券,甚至超载购物车的用户,可能会给申请带来意想不到的条件。实际上,没有办法知道程序在遇到未知情况时会如何反应。最好的情况可能是生成错误消息,但不能保证应用程序不会采取更糟糕的操作,例如免费提供商品。

为什么业务逻辑问题很危险?

业务逻辑问题可能极其危险,因为任何人都可以利用这些问题,即使是没有经过编程或黑客培训的人也是如此。实际上,它只需要实验和时间,四处点击并尝试发现应用程序设计响应方式中的缺陷。而且,一旦恶意用户发现网站业务逻辑中的漏洞,你可以打赌他们会尽可能地利用这个漏洞。

最大的危险通常是经济上的,让用户在不付费的情况下购买20台大屏幕电视或类似的东西。但是业务逻辑缺陷也可能导致其他问题。例如,如果保护网站的密码功能不知道如果用户不断点击 “取消” 该怎么做,则可能会让他们完全绕过登录过程。

实际上无法预测业务逻辑问题可能造成多大的损害。通常,问题的第一个迹象是在用户利用问题很久之后才出现的。

修复业务逻辑问题

不幸的是,使用漏洞扫描器等常用工具无助于识别或修复业务逻辑问题,因为业务逻辑问题的测试不容易自动化。避免它们的最佳方法是在开发应用程序时对负面测试用例进行良好的规划、错误处理和测试。这首先需要一组明确定义的业务规则,其中包括应用程序设计要采取的所有可能和预期的操作。

有了业务规则计划,防止业务逻辑缺陷蔓延的最佳方法之一是创建流程图,显示数据和交易应在应用程序内流动的所有可能方式。这包括用户能够做出选择或输入数据的每个实例的建模行为。不断检查以确保流程图中可能的操作与业务规则计划中的功能相匹配。

最后,使用威胁建模来帮助识别设计、实施和测试阶段业务逻辑中的缺陷。作为万无一失的保障,创建程序在遇到任何未特别预期的情况时应采取的操作。这可能很简单,比如拒绝该操作并提醒管理员注意遇到的问题。

有关业务逻辑问题的更多信息

要进一步阅读,你可以看看上的 OWASP 页面 业务逻辑问题。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客

准备好立即寻找和摧毁业务逻辑漏洞了吗?前往平台测试你的技能: [从这里开始]

Índice

Descargar PDF
Ver recursos
¿Te interesa saber más?

Jaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.

Más información

Secure Code Warrior puede ayudar a su organización a proteger el código a lo largo de todo el ciclo de vida del desarrollo de software y a crear una cultura que dé prioridad a la ciberseguridad. Tanto si es usted responsable de seguridad de aplicaciones, desarrollador, director de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados al código inseguro.

Reservar una demostraciónDescargar
Compartir en:
marcas de LinkedInSocialx logotipo
Centro de recursos

Recursos para ayudarle a empezar

Más publicaciones
Centro de recursos

Recursos para ayudarle a empezar

Más publicaciones