2009-12-22 19 views
14

Tôi đang tìm một trình khử trùng html mà tôi có thể gọi cho mỗi API để khử trùng các chuỗi mà tôi nhận được từ webapp của mình. Có một số hữu ích để sử dụng libs có sẵn không? Có ai biết có thể một hoặc hai?Libs cho HTML sanitizing

Tôi không cần thứ gì đó to lớn, nó chỉ có thể tìm thấy các thẻ không được đính kèm và đóng chúng lại.

Trả lời

10

JTidy có thể giúp bạn.

+0

Có idd, jTidy giúp tôi ra đây. Cám ơn vì đã chia sẻ. – onigunn

24

https://github.com/OWASP/java-html-sanitizer nay được đánh dấu sẵn sàng để sử dụng sản xuất.

Trình cấu hình HTML Sanitizer nhanh chóng và dễ dàng được viết bằng Java cho phép bạn bao gồm HTML do các bên thứ ba trong ứng dụng web của bạn biên soạn trong khi bảo vệ chống lại XSS.

Bạn có thể sử dụng prepackaged policies

Sanitizers.FORMATTING.and(Sanitizers.LINKS) 

hoặc tests thấy làm thế nào bạn có thể cấu hình riêng của bạn một cách dễ dàng:

new HtmlPolicyBuilder() 
    .allowElements("a") 
    .allowUrlProtocols("https") 
    .allowAttributes("href").onElements("a") 
    .requireRelNofollowOnLinks() 

hoặc viết chính sách tùy chỉnh để làm những việc như thay đổi h1 s để div s với một lớp học nhất định:

new HtmlPolicyBuilder() 
    .allowElements("h1", "p") 
    .allowElements(
     new ElementPolicy() { 
      public String apply(String elementName, List<String> attrs) { 
      attrs.add("class"); 
      attrs.add("header-" + elementName); 
      return "div"; 
      } 
     }, "h1")) 
+0

Thư viện này tạo ấn tượng tốt đầu tiên: Tài liệu và API sạch sẽ. –

+0

Tôi sử dụng thư viện này nhưng nó cũng loại bỏ iframe được nhúng. Có cách nào để cho phép thêm iframe, tôi có trường hợp sử dụng chính hãng như thêm nhúng video youtube hoặc bản trình bày trình chiếu hay không. Làm cách nào tôi có thể cho phép các iframe được nhúng như vậy? –

+1

@ usero1, Có, bạn có thể 'allowElements (" iframe ")'. –

Các vấn đề liên quan