2012-05-07 4 views
1

Je sais que cela a été demandé auparavant, mais j'essaie de comprendre comment empêcher les attaques XSS pour mon application Web Spring MVC.Prévenir XSS au printemps MVC

1) J'ajouté ce qui suit à mon web.xml

<context-param> 
    <param-name>defaultHtmlEscape</param-name> 
    <param-value>true</param-value> 
</context-param>  

2) Dois-je aussi utilise StringEscapeUtils.escapeHtml Commons() pour chaque propriété dans l'objet de commande sous forme avant de l'enregistrer dans la base de données ? Aurais-je besoin d'unescape à un moment donné?

Merci

Répondre

2

Même si échapper html par défaut arrête XSS dans de nombreux contextes, il y a certainement contextes où cela ne fonctionne pas. Voir un exemple ici: http://erlend.oftedal.no/blog/?id=124 Je vous recommande de consulter la fiche de prévention OWASP XSS. Il explique quand vous devez utiliser différentes échappées. En ce qui concerne 2 ne s'échappent pas avant de le mettre dans le db. La routine d'échappement pourrait avoir des erreurs et vous ne pouvez pas être sûr que les données seront utilisées dans le même contexte à chaque fois

2

Je préfère que vous essayiez l'API HDIV pour ce type de sécurité des données sur votre application. Il empêche ceci et d'autres 7 attaques possibles différentes sur votre application web. J'explore actuellement la même API à utiliser avec Spring Framework.

Click here for HDIV home page.

espoir que cela vous aide.

+0

Cela semble très lourd pour ce que j'essaie de faire. Je veux juste un moyen simple d'échapper à des personnages malveillants, puis les oublier quand je les présente dans la vue. – user879220

+0

Vous avez raison. Mais si vous voulez rendre votre application web complètement sécurisée avec d'autres attaques, alors il faut aller avec quelque chose comme HDIV. Il affectera sûrement de 2-3% à vos performances, mais c'est acceptable. –

+0

Je ne suis pas d'accord. L'utilisation d'un WAF est une couche de défense précieuse, mais elle n'est pas une excuse pour créer des applications vulnérables et ne vous rend pas "totalement sécurisé" par tous les moyens. – droope