Ensuite, lors de la réalisation, il faut penser à bien valider les données entrées par l'utilisateur pour éviter toutes les attaques du type débordement de buffer (buffer overflow), les injections SQL, l'exploitation de mauvaises utilisations des chaînes de formatage (format string attacks), les dépassements d'entiers (integer overflow), etc. L'idée générale et la plus importante est de ne jamais faire confiance à l'utilisateur. Ne jamais faire des hypothèses sur les entrées sans les vérifier soi-même (par exemple taille de l'entrée, signe du nombre,...).
Il faut de plus réaliser le programme dans un langage approprié. En effet, certains langages sont moins sujets que d'autres aux différents bugs de formats et autres buffer overflow. De plus ces langages disposant de bibliothèques de fonctions de bases, l'utilisateur n'a donc pas besoin de réécrire les siennes où il risquerait d'introduire des bugs.