X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/d7e0c035e55e8b47a9ea7e993c9332a7ce9930e1..6c5f315970b0e7a8473e9a1151229459781192a8:/doc/plugins/htmlscrubber.mdwn diff --git a/doc/plugins/htmlscrubber.mdwn b/doc/plugins/htmlscrubber.mdwn index d7bcf8099..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. ----