2010-12-08 6 views
0

J'ai besoin d'un java regexp pour vérifier JavaScript dangereux dans une chaîne de texte, donc je ne l'enregistre pas dans ma base de données. Je suis en train de trouver des informations sur Internet, mais ne trouve rien :( Quelqu'un pourrait-il me aider? MerciRegExp pour vérifier JavaScript

+0

Pourriez-vous être plus précis sur le type de texte que vous voulez faire correspondre? – Ruel

+2

Votre base de données n'exécutera pas le code JavaScript. Donc, ne vous inquiétez pas à ce sujet dans ce contexte. – Gumbo

+1

N'utilisez pas RE pour cela; ce n'est pas construit à cette fin. Utilisez un désinfectant JS de quelque sorte. Comme je n'ai pas de nom à vous donner je l'ai mis dans un commentaire. – Keng

Répondre

0

je il y a quelques années, une classe java qui pour moi ajouté un regexp comme celui-ci :

(.(?<!<|%3c|&#x3c))* 

Il a été calculé de cette façon:

String[] EVIL_WORDS = { "<", "%3C", "&#x3C;", "&#60", "PA==", 
          ">", "%3E", "&#x3E;", "&#62", "Pg==", 
          "&", "%26", "&#x26;", "&#38", "Jg==", 
          "\"", "%22", "&#x22;", "&#34", "Ig==", 
          "'", "%27", "&#x27;", "&#39", "Jw=="}; 

StringBuffer buffer = new StringBuffer(); 
buffer.append("(.") 
if(EVIL_WORDS.length > 0) {  
    buffer.append("(?<!"); 
    buffer.append(EVIL_WORDS[0]); 
    for (int i = 1; i < EVIL_WORDS.length; i++) { 
    buffer.append('|'); 
    buffer.append(EVIL_WORDS[i]); 
    } //for 
    buffer.append(')'); 
}//if 
buffer.append(')*'); 

Il le modèle ne correspond pas, il y a eu un mauvais caractère détecté

0.

Le script a produit l'original reooe de looong et a fait des contrôles pour la longueur, l'injection sql et beaucoup d'autres choses, mais ces temps ont disparu. Avec les grails et la protection XSS et la protection d'injection hibernates sql je ne l'utilise plus. Mais je suis content de pouvoir vous aider.

Questions connexes