Package org.jsoup.safety

## Class Cleaner

- java.lang.Object
- - org.jsoup.safety.Cleaner

    public class Cleaner
    extends java.lang.Object

The safelist based HTML cleaner. Use to ensure that end-user provided HTML contains only the elements and attributes that you are expecting; no junk, and no cross-site scripting attacks!

The HTML cleaner parses the input as HTML and then runs it through a safe-list, so the output HTML can only contain HTML that is allowed by the safelist.

It is assumed that the input HTML is a body fragment; the clean methods only pull from the source's body, and the canned safe-lists only allow body contained tags.

Rather than interacting directly with a Cleaner object, generally see the `clean` methods in `Jsoup`.

### Constructor Summary

Constructors
`Cleaner​(Safelist safelist)` Create a new cleaner, that sanitizes documents using the supplied safelist.
`Cleaner​(Whitelist whitelist)` Deprecated. as of 1.14.1.

### Method Summary

All Methods Instance Methods Concrete Methods
`Document` `clean​(Document dirtyDocument)` Creates a new, clean document, from the original dirty document, containing only elements allowed by the safelist.
`boolean` `isValid​(Document dirtyDocument)` Determines if the input document bodyis valid, against the safelist.
`boolean` `isValidBodyHtml​(java.lang.String bodyHtml)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### Cleaner

    public Cleaner​(Safelist safelist)

Create a new cleaner, that sanitizes documents using the supplied safelist.

Parameters:
  `safelist` - safe-list to clean with

#### Cleaner

    @Deprecated
    public Cleaner​(Whitelist whitelist)

Deprecated.
as of 1.14.1.
Use `Cleaner(Safelist)` instead.

### Method Detail

#### clean

    public Document clean​(Document dirtyDocument)

Creates a new, clean document, from the original dirty document, containing only elements allowed by the safelist. The original document is not modified. Only elements from the dirty document's `body` are used. The OutputSettings of the original document are cloned into the clean document.

Parameters:
  `dirtyDocument` - Untrusted base document to clean.
Returns:
  cleaned document.

#### isValid

    public boolean isValid​(Document dirtyDocument)

Determines if the input document bodyis valid, against the safelist. It is considered valid if all the tags and attributes in the input HTML are allowed by the safelist, and that there is no content in the `head`.

This method can be used as a validator for user input. An invalid document will still be cleaned successfully using the `clean(Document)` document. If using as a validator, it is recommended to still clean the document to ensure enforced attributes are set correctly, and that the output is tidied.

Parameters:
  `dirtyDocument` - document to test
Returns:
  true if no tags or attributes need to be removed; false if they do

#### isValidBodyHtml

    public boolean isValidBodyHtml​(java.lang.String bodyHtml)