2009-09-04 5 views
1

Une application Web tierce présente un problème de sécurité lié aux scripts croisés. Il y a une page avec trois champs qui ne sont pas aseptisés. Le fournisseur ne fournira pas une solution opportune et je dois le faire.Empêche les tentatives XSS sur une application Web Tomcat/Struts 1 (sans code source)

L'application est en cours d'exécution dans Tomcat et utilise Struts 1. L'action pour la mauvaise page ressemble à ceci:

<action 
    path="/badpage" 
    type="com.badvendor.BadAction" 
    name="badForm" 
    scope="request" 
    validate="true" 
    input="/otherbadpage.do"> 
    <forward name="failure" path="/otherbadpage.do"/> 
    <forward name="success" path="/otherbadpage.do"/> 
</action> 

Je n'ai pas le code source de la classe d'action.

Quelle est la manière la plus simple de passer de la requête à l'action pour désinfecter l'entrée (ou même simplement provoquer une erreur sur une mauvaise entrée)?

+0

Il pourrait être plus facile de résoudre ceci sans écrire de code. Existe-t-il un moyen d'ajouter des règles de validation avec des fichiers de configuration uniquement? –

+0

@Jeremy - cette application utilise Struts Validator? (http://struts.apache.org/1.3.10/faqs/validator.html) Si oui, vous pouvez ajouter des règles de validation sans changer le code java. – ChssPly76

+0

@ ChssPly76 - Non, mais pas ' Je l'ai juste activé? Ou faudrait-il un support de code? –

Répondre

2

Vous pouvez:

  1. Modifier le mappage pour pointer vers une autre action (vôtre). Transférer le contrôle à l'action en question après l'entrée d'assainissement.
  2. Écrivez un filtre de servlet pour intercepter cet URI particulier.