Certains framework proposent des solutions pour se protéger de quelques une de ses failles (filtres, prepare statement...) mais il faut le plus souvent penser à les utiliser.
Même si en tant que développeurs on a plus ou moins connaissance de ce type de failles, nous ne sommes pas à l'abris d'un oubli ou d'une exploitation à laquelle on aurait pas pensé.
Afin de se prémunir de ce genre de faille, vous pouvez selon votre budget :
- Demander un audit de sécurité de votre application à une société, celle-ci peut à la fois vérifier l'application sans compte de connexion (pour tenter de forcer l'authentification, le XSS, sql injection...) mais également avec un compte pour tester en plus le XSRF et l'isolation des données. L'infrastructure peut également faire l'objet d'un audit (non affichage des informations sur les versions des serveurs, ports ouverts...)
- Utiliser certains outils automatiques (gratuit ou payant) comme Acunetix, Xsser ou Xelenium, malheureusement ceux-ci sont souvent plus ou moins limités et ne permettent pas de tester l'isolation des données*
- Spécialiser un ou plusieurs développeurs dans votre service afin que ceux-ci fassent des audits de sécurités sur les applications qu'ils n'ont pas développé.
Et vous ?
Quels solutions avez-vous choisi pour sécuriser vos applications web ?
Notes de bas de page :
*isolation des données: le compte 1 ne doit pas voir/modifier/supprimer les données du compte 2 en modifiant l'url (toujours vérifié le propriétaire des données affichées/modifiées)
*Xss/Css : Cross-site Scripting
*Xsrf/Csrf : Cross-site Request Forgery Cross-site_request_forgery
*nullbyte injection