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.
Often Misused: SMS
Exemplo 1: Nesses casos, o aplicativo envia uma mensagem SMS ou escrita previamente e apresenta uma mensagem SMS ao usuário a qual ele ou ela é solicitado a enviar ou cancelar:
...
Device.OpenUri("sms:+12345678910");
...
Exemplo 1: Nestes casos, o aplicativo envia uma mensagem SMS ou escrita previamente e apresenta uma mensagem SMS ao usuário a qual ele ou ela é solicitado a enviar ou cancelar:
...
[[CTMessageCenter sharedMessageCenter] sendSMSWithText:@"Hello world!" serviceCenter:nil toAddress:@"+12345678910"];
...
// or
...
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:+12345678910"]];
...
// or
...
MFMessageComposeViewController *messageComposerVC = [[MFMessageComposeViewController alloc] init];
[messageComposerVC setMessageComposeDelegate:self];
[messageComposerVC setBody:@"Hello World!"];
[messageComposerVC setRecipients:[NSArray arrayWithObject:@"+12345678910"]];
[self presentViewController:messageComposerVC animated:YES completion:nil];
...
Exemplo 1: Nestes casos, o aplicativo envia uma mensagem SMS ou escrita previamente e apresenta uma mensagem SMS ao usuário a qual ele ou ela é solicitado a enviar ou cancelar:
...
UIApplication.sharedApplication().openURL(NSURL(string: "sms:+12345678910"))
...
ou
...
let messageComposeVC = MFMessageComposeViewController()
messageComposeVC.messageComposeDelegate = self
messageComposeVC.body = "Hello World!"
messageComposeVC.recipients = ["+12345678910"]
presentViewController(messageComposeVC, animated: true, completion: nil)
...