2010-12-08 7 views
0

データベースに保存しないように、危険なJavaScriptをテキスト文字列でチェックするにはjava regexpが必要です。 は私が誰かがそれで私を助けてもらえ、インターネット上でいくつかの情報を見つけるためにしようとしているが、何:( を見つけることができません? 私は何年か前に私のために、このような正規表現を追加するJavaクラスを使用RegExpでJavaScriptを確認する

+0

どのような種類のテキストにマッチさせたいのですか。 – Ruel

+2

データベースでJavaScriptコードが実行されません。そういう意味では心配しないでください。 – Gumbo

+1

これにはREを使用しないでください。その目的のために作られたものではありません。何らかのJSサニタイザーを使用してください。私はあなたに与える名前がないので、私はこれをコメントに入れます。 – Keng

答えて

0

ありがとう:

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

それはそのように計算された:

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(')*'); 

をそれはパターンが検出された不正な文字があったと一致しませんでした

0。

スクリプトは、元のveeery looong正規表現を生成し、長さ、SQLインジェクション、および他の多くのもののチェックを行いましたが、これらの時間はなくなりました。 grailsとXSSの保護とhibernatesのSQLインジェクション保護で、私はもはやそれを使用しません。 しかし、もし私があなたを助けることができたらうれしいです。

関連する問題