The usual mistakes
- The webhook that marks an order paid does not check the payment provider's signature, so anyone can send a fake "paid" message.
- Paid status, credits or the plan are written from the browser, so a user can give themselves the paid plan.
- Secret payment keys sit in a public variable or in the code.
Data: Redproof's automated checks on public GitHub repositories, November 2026. No repository is named. Method and limits