]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/plugins/htmlscrubber.mdwn
related ideas
[git.ikiwiki.info.git] / doc / plugins / htmlscrubber.mdwn
index b32c264df3f245688375093b88142ba2318683a7..08c81212bdf19fdf6acc0c4756d6becddcaee036 100644 (file)
@@ -1,19 +1,20 @@
-[[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.
 
 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 <http://feedparser.org/docs/html-sanitization.html>.
+Parser, documented at
+<http://web.archive.org/web/20110726052341/http://feedparser.org/docs/html-sanitization.html>.
 Notably it strips `style` and `link` tags, and the `style` attribute.
 
-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.
+Any attributes that could be used to specify a URL are checked to ensure
+that they are known, safe schemes.  It will also block embedded javascript
+in such URLs.
 
-It uses the [[cpan HTML::Scrubber]] perl module to perform its html
+It uses the [[!cpan HTML::Scrubber]] perl module to perform its html
 sanitisation, and this perl module also deals with various entity encoding
 tricks.
 
@@ -31,6 +32,13 @@ 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 
+`posts/* and !comment(*) and !*/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.
+
 ----
 
 Some examples of embedded javascript that won't be let through when this