faille de sécurité - veracode rapport - crlf injection

J'ai eu le veracode rapport pour mon application javaEE. Il avait une faille à tout enregistrement (à l'aide de log4j), j'ai donc ajouter le StringEscapeUtils.escapeJava(log) à tous, mais veracode garde de leur déclaration que les failles de sécurité.

Est-ce une bonne solution?
Que puis-je faire?

C'est le rapport de l'info:
Titre:
Une mauvaise Sortie de Neutralisation pour les Journaux

Description:
Un appel de fonction pourrait entraîner un journal de forgeage attaque. Écrit unsanitized données fournies par l'utilisateur dans un fichier journal permet à un
l'attaquant de forger des entrées de journal ou d'injecter du contenu malveillant dans les fichiers journaux. Corrompu les fichiers journaux peuvent être utilisés pour couvrir une
l'attaquant des pistes ou comme un mécanisme de livraison pour une attaque sur un affichage de journal ou de traitement de l'utilitaire. Par exemple, si un site web
l'administrateur utilise un navigateur basé sur l'utilitaire de consulter les journaux, un cross-site scripting attaque pourrait être possible.

Recommandations:
Éviter directement l'incorporation de la saisie de l'utilisateur dans les fichiers journaux lorsque cela est possible. Désinfecter les données fournies par l'utilisateur utilisé pour construire journal
les entrées en utilisant un coffre-fort mécanisme de journalisation comme l'OWASP ESAPI Enregistreur, qui supprimera automatiquement
inattendu retours chariot et les sauts de ligne et peut être configuré pour utiliser les entités HTML de codage pour les non-alphanumériques
les données. Seulement rédigez votre propre liste noire de code lorsque cela est absolument nécessaire. Toujours valider l'entrée fourni par l'utilisateur pour assurer
qu'il est conforme au format attendu, à l'aide de données centralisée des routines de validation lorsque cela est possible.

Ils recommandent d'utiliser ESAPI, mais c'est un très gros projet, donc j'ai besoin de la solution la plus simple, la tht est pourquoi j'ai essayé avec de la Ficelle.escape 'StringEscapeUtils.escapeJava(log)'

Thx avancé!

Pouvez-vous fournir plus d'informations à partir de la Veracode rapport? Bien sûr, le dépouiller de toute information d'identification

OriginalL'auteur david | 2013-04-25