Uma API é um contrato entre quem chama e o que se chama. As formas mais comuns de abuso de API ocorrem quando o responsável pela chamada não respeita sua parte do contrato. Por exemplo, se um programa não chama chdir() após chamar chroot(), ele viola o contrato que especifica como alterar o diretório raiz ativo de forma segura. Outro bom exemplo de abuso de biblioteca é esperar que o elemento chamado retorne informações confiáveis de DNS ao responsável pela chamada. Nesse caso, o responsável pela chamada abusa a API do elemento chamado ao fazer certas suposições sobre seu comportamento (isto é, que o valor de retorno pode ser usado para fins de autenticação). A outra parte também pode violar o contrato entre quem chama e o que se chama. Por exemplo, se um programador definir SecureRandom como subclasse e retornar um valor não aleatório, o contrato será violado.
SQL Bad Practices: Direct Update
As operações de gravação Open SQL diretas também são propensas a erros e podem provocar o comportamento inesperado do sistema. Alguns dos problemas que devem ser observados no SAP incluem:
- A SAP recomenda o uso de técnicas de "agrupamento de atualizações" para garantir a integridade dos dados em uma LUW (unidade lógica de trabalho) SAP que pode propagar várias LUWs de banco de dados. Modificações diretas em entradas de tabelas sem o agrupamento de atualizações podem deixar a transação SAP em um estado inconsistente.
- Operações de gravação Open SQL diretas apenas definem bloqueios no nível do banco de dados e ignoram os bloqueios de aplicativos SAP. Isso pode resultar em deadlocks e dados corrompidos.
- Operações de gravação Open SQL diretas ignoram verificações de autorização SAP dentro do programa aplicativo.
- Quando mecanismos padrão são utilizados para gravar entradas de tabela, editar verificações e realizar trilhas de auditoria, todas as atualizações dependentes (como documentos de alteração, por exemplo) são realizadas corretamente. Este não é o caso quando operações de gravação Open SQL diretas são utilizadas.