2013-04-16 6 views
0

У меня была задана задача предотвратить использование нашего сайта в Cross-Site Scripting (XSS). Эта концепция нова для меня, и я много гугл и получил owasp-java-html-sanitizer. Я создал свою собственную политику сКак использовать политику owasp-java-html-sanitizer на странице jsp

public static final PolicyFactory POLICY_DEFINITION = new HtmlPolicyBuilder() 

с помощью .allowAttributes, я разработал его. Но теперь я невежествен, как использовать его ... Я нашел следующий фрагмент кода:

System.err.println("[Reading from STDIN]"); 
    // Fetch the HTML to sanitize. 
    String html = CharStreams.toString(new InputStreamReader(System.in, 
      Charsets.UTF_8)); 
    // Set up an output channel to receive the sanitized HTML. 
    HtmlStreamRenderer renderer = HtmlStreamRenderer.create(System.out, 
    // Receives notifications on a failure to write to the output. 
      new Handler<IOException>() { 
       public void handle(IOException ex) { 
        Throwables.propagate(ex); // System.out suppresses 
               // IOExceptions 
       } 
      }, 
      // Our HTML parser is very lenient, but this receives 
      // notifications on 
      // truly bizarre inputs. 
      new Handler<String>() { 
       public void handle(String x) { 
        throw new AssertionError(x); 
       } 
      }); 
    // Use the policy defined above to sanitize the HTML. 
    HtmlSanitizer.sanitize(html, POLICY_DEFINITION.apply(renderer)); 
} 

, но как я могу применить это к моему JSP, потому что я думаю, что это для простого HTML. Пожалуйста, помогите.

ответ

0

Вы можете прикрепить визуализатор к StringWriter вместо System.out, но это, вероятно, проще всего использовать полис sanitize convenience method :

public java.lang.String sanitize(@Nullable 
           java.lang.String html) 

функция для удобства, которая дезинфицирует строку HTML.

, который возвращает строку HTML, безопасную для интерполирования на вашу страницу JSP.