Reino: API Abuse

Un API es un contrato entre un autor de llamada y un receptor de llamada. Las formas de abuso de API más comunes los produce el autor de llamada cuando no consigue atender su fin de este contrato. Por ejemplo, si un programa no consigue llamar chdir() después de llamar chroot(), se viola el contrato que especifica cómo cambiar el directorio de origen activo de una forma segura. Otro buen ejemplo de un abuso de manual es esperar que el receptor devuelva una información de DNS de confianza al autor de llamada. En este caso, el autor de llamada abusa el API del receptor haciendo determinadas suposiciones sobre su comportamiento (que el valor de retorno se puede usar con fines de autenticación). También se puede violar el contrato entre el autor de llamada y el receptor desde el otro lado. Por ejemplo, si un codificador envía SecureRandom y devuelve un valor no aleatorio, se viola el contrato.

Dangerous Function

Abstract
Nunca deben usarse las funciones que no se pueden utilizar con seguridad.
Explanation
Determinadas funciones se comportan de forma peligrosa independientemente de cómo se utilicen. Las funciones de esta categoría se implementaron a menudo sin tener en cuenta las cuestiones relativas a la seguridad.

desc.semantic.cpp.dangerous_function.master
Abstract
Nunca deben usarse las funciones que no se pueden utilizar con seguridad.
Explanation
Determinadas funciones se comportan de forma peligrosa independientemente de cómo se utilicen. Las funciones de esta categoría se implementaron a menudo sin tener en cuenta las cuestiones relativas a la seguridad.

desc.semantic.php.dangerous_function.master
Abstract
Nunca deben usarse las funciones que no se pueden utilizar con seguridad.
Explanation
DBMS_UTILITY.EXEC_DDL_STATEMENT solo ejecutará instrucciones clasificadas como parte del lenguaje de definición de datos. El resto de instrucciones que no sean compatibles con SQL incrustado se omitirá sin notificación alguna. Este comportamiento dificulta la detección de errores cuando se utiliza el procedimiento.
References
[1] How to write SQL injection proof PL/SQL
desc.semantic.sql.dangerous_function_exec_ddl
Abstract
Las funciones que no pueden utilizarse de forma segura, o en las que hacerlo resulta muy complicado, no deberían utilizarse.
Explanation
Algunas funciones se comportan de forma peligrosa o inesperada. Las funciones de esta categoría se implementaron a menudo sin tener en cuenta las cuestiones relativas a la seguridad.

desc.structural.ruby.dangerous_function