1 - Les formulaires et URLs
En premier lieu, il faut s'assurer que les portes d'entrée sont bien verrouillées. Il faut contrôler que tous les formulaires et toutes les URLs (en particulier celles ayant des paramètres), filtrent correctement les données soumises par les utilisateurs. C'est le premier niveau de contrôle. Selon l'OWASP, les failles de sécurité les plus populaires exploitent l'une ou l'autre de ces "portes" (injection de code malicieux, XSS, CSRF...).
2 - Le code source de l'application
Il est primordial que l'application soit bien conçue, en adoptant l'ensemble des bonnes pratiques en termes de sécurité. Il est conseillé d'utiliser des frameworks proposant des APIs, permettant aux développeurs de se focaliser sur le fonctionnel, tout en garantissant un très bon niveau de sécurité. Ces frameworks sont maintenus par des experts dans différents domaines (sécurité, performance...), ce qui nous permet de bénéficier d'outils fiables sur lesquels on peut se reposer.
Dans le cas où l'application utilise des librairies externes (librairies JS, librairies PHP...), il faut également s'assurer d'un bon niveau de sécurité pour chacune d'entre elles. La multiplication des librairies ne simplifie pas la maintenance du système. Dès lors qu'une des librairies est exploitable par un pirate, alors tout le site ou l'application est potentiellement impacté. Cette décentralisation des librairies augmente aussi la surface d'attaque.