X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/03dc63588c881ac38fcd8c7b5fefdc564e343b09..523718b181e9767d322bba3fe0b68cfcf85056a6:/doc/plugins/htmlscrubber.mdwn?ds=inline diff --git a/doc/plugins/htmlscrubber.mdwn b/doc/plugins/htmlscrubber.mdwn index 6ce297a86..c59b46e14 100644 --- a/doc/plugins/htmlscrubber.mdwn +++ b/doc/plugins/htmlscrubber.mdwn @@ -1,5 +1,5 @@ -[[template id=plugin name=htmlscrubber core=1 author="[[Joey]]"]] -[[tag type/html]] +[[!template id=plugin name=htmlscrubber core=1 author="[[Joey]]"]] +[[!tag type/html]] This plugin is enabled by default. It sanitizes the html on pages it renders to avoid XSS attacks and the like. @@ -9,7 +9,11 @@ whitelisted using the same lists as used by Mark Pilgrim's Universal Feed Parser, documented at . Notably it strips `style` and `link` tags, and the `style` attribute. -It uses the [[cpan HTML::Scrubber]] perl module to perform its html +All attributes that can be used to specify an url are checked to make sure +that the url is in a known, safe scheme, and to block embedded javascript +in such urls. + +It uses the [[!cpan HTML::Scrubber]] perl module to perform its html sanitisation, and this perl module also deals with various entity encoding tricks. @@ -23,9 +27,15 @@ The web's security model is *fundamentally broken*; ikiwiki's html sanitisation is only a patch on the underlying gaping hole that is your web browser. -Note that enabling or disabling the htmlscrubber plugin also affects some other -HTML-related functionality, such as whether [[meta]] allows potentially unsafe -HTML tags. +Note that enabling or disabling the htmlscrubber plugin also affects some +other HTML-related functionality, such as whether [[meta]] allows +potentially unsafe HTML tags. + +The `htmlscrubber_skip` configuration setting can be used to skip scrubbing +of some pages. Set it to a [[ikiwiki/PageSpec]], such as "!*/Discussion", +and pages matching that can have all the evil CSS, JavsScript, and unsafe +html elements you like. One safe way to use this is to use [[lockedit]] to +lock those pages, so only admins can edit them. ---- @@ -36,3 +46,4 @@ plugin is active: * CSS script test * entity-encoded CSS script test * entity-encoded CSS script test +* click me