/usr/lib64/python2.6/site-packages/lxml/html
NameSizeModeActions
builder.py43100644editdlrm
builder.pyc39180644editdlrm
builder.pyo39180644editdlrm
clean.py250170644editdlrm
clean.pyc189000644editdlrm
clean.pyo187990644editdlrm
defs.py38000644editdlrm
defs.pyc35780644editdlrm
defs.pyo35780644editdlrm
diff.py303750644editdlrm
diff.pyc286960644editdlrm
diff.pyo283460644editdlrm
ElementSoup.py3190644editdlrm
ElementSoup.pyc6220644editdlrm
ElementSoup.pyo6220644editdlrm
formfill.py97610644editdlrm
formfill.pyc100150644editdlrm
formfill.pyo97610644editdlrm
html5parser.py53040644editdlrm
html5parser.pyc58700644editdlrm
html5parser.pyo58700644editdlrm
soupparser.py42750644editdlrm
soupparser.pyc48310644editdlrm
soupparser.pyo48310644editdlrm
usedoctest.py2490644editdlrm
usedoctest.pyc4640644editdlrm
usedoctest.pyo4640644editdlrm
_dictmixin.py35390644editdlrm
_dictmixin.pyc46880644editdlrm
_dictmixin.pyo46880644editdlrm
_diffcommand.py20820644editdlrm
_diffcommand.pyc28560644editdlrm
_diffcommand.pyo28560644editdlrm
_html5builder.py31240644editdlrm
_html5builder.pyc44980644editdlrm
_html5builder.pyo44980644editdlrm
_setmixin.py24880644editdlrm
_setmixin.pyc51940644editdlrm
_setmixin.pyo51940644editdlrm
__init__.py521370644editdlrm
__init__.pyc563640644editdlrm
__init__.pyo561100644editdlrm
Edit: /usr/lib64/python2.6/site-packages/lxml/html/clean.py (25017B)
"""A cleanup tool for HTML. Removes unwanted tags and content. See the `Cleaner` class for details. """ import re import copy try: from urlparse import urlsplit except ImportError: # Python 3 from urllib.parse import urlsplit from lxml import etree from lxml.html import defs from lxml.html import fromstring, tostring, XHTML_NAMESPACE from lxml.html import _nons, _transform_result try: set except NameError: # Python 3 from sets import Set as set try: unichr = __builtins__['unichr'] except (NameError, KeyError): # Python 3 unichr = chr try: unicode = __builtins__['unicode'] except (NameError, KeyError): # Python 3 unicode = str try: bytes = __builtins__['bytes'] except (NameError, KeyError): # Python < 2.6 bytes = str try: basestring = __builtins__['basestring'] except (NameError, KeyError): basestring = (str, bytes) __all__ = ['clean_html', 'clean', 'Cleaner', 'autolink', 'autolink_html', 'word_break', 'word_break_html'] # Look at http://code.sixapart.com/trac/livejournal/browser/trunk/cgi-bin/cleanhtml.pl # Particularly the CSS cleaning; most of the tag cleaning is integrated now # I have multiple kinds of schemes searched; but should schemes be # whitelisted instead? # max height? # remove images? Also in CSS? background attribute? # Some way to whitelist object, iframe, etc (e.g., if you want to # allow *just* embedded YouTube movies) # Log what was deleted and why? # style="behavior: ..." might be bad in IE? # Should we have something for just ? That's the worst of the # metas. # UTF-7 detections? Example: # +ADw-SCRIPT+AD4-alert('XSS');+ADw-/SCRIPT+AD4- # you don't always have to have the charset set, if the page has no charset # and there's UTF7-like code in it. # Look at these tests: http://htmlpurifier.org/live/smoketests/xssAttacks.php # This is an IE-specific construct you can have in a stylesheet to # run some Javascript: _css_javascript_re = re.compile( r'expression\s*\(.*?\)', re.S|re.I) # Do I have to worry about @\nimport? _css_import_re = re.compile( r'@\s*import', re.I) # All kinds of schemes besides just javascript: that can cause # execution: _javascript_scheme_re = re.compile( r'\s*(?:javascript|jscript|livescript|vbscript|about|mocha):', re.I) _substitute_whitespace = re.compile(r'\s+').sub # FIXME: should data: be blocked? # FIXME: check against: http://msdn2.microsoft.com/en-us/library/ms537512.aspx _conditional_comment_re = re.compile( r'\[if[\s\n\r]+.*?][\s\n\r]*>', re.I|re.S) _find_styled_elements = etree.XPath( "descendant-or-self::*[@style]") _find_external_links = etree.XPath( ("descendant-or-self::a [normalize-space(@href) and substring(normalize-space(@href),1,1) != '#'] |" "descendant-or-self::x:a[normalize-space(@href) and substring(normalize-space(@href),1,1) != '#']"), namespaces={'x':XHTML_NAMESPACE}) class Cleaner(object): """ Instances cleans the document of each of the possible offending elements. The cleaning is controlled by attributes; you can override attributes in a subclass, or set them in the constructor. ``scripts``: Removes any ``