X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/068fa7d079195d66ade6728963d9f9102588d09c..53453ebdb2c6624abcbb56a2f9605fffcd326c77:/doc/plugins/htmlscrubber.mdwn?ds=sidebyside diff --git a/doc/plugins/htmlscrubber.mdwn b/doc/plugins/htmlscrubber.mdwn index 0aa0ab3c0..b651ffc99 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. @@ -7,9 +7,13 @@ to avoid XSS attacks and the like. It excludes all html tags and attributes except for those that are whitelisted using the same lists as used by Mark Pilgrim's Universal Feed Parser, documented at . -Notably it strips `style`, `link`, and the `style` attribute. +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,15 +27,17 @@ 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. ---- Some examples of embedded javascript that won't be let through when this plugin is active: -* test -* test -* test +* script tag test +* CSS script test +* entity-encoded CSS script test +* entity-encoded CSS script test +* click me