Business logic vulnerabilities
The final category of vulnerability is that of business logic vulnerabilities, which allow an attacker to elicit unexpected behaviors with negative consequences. They are closely aligned with abuse cases and can be notoriously difficult to eliminate. The key is to think like an adversary—threat modeling exercises can be useful in highlighting business logic vulnerabilities.
There are several good examples of business logic vulnerabilities affecting APIs:
- Relying on client-side controls: One of the most nefarious and persistent weaknesses (highlighted frequently in this chapter) is the reliance on client-side controls to implement security. Simply put, they do not work and can always be defeated—do not use them.
- Trusting users: Avoid trusting that the user will behave in the way you intended; typical examples include not providing required parameters or supplying the wrong format of data.
- Trusting partners and third parties...