]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blob - doc/plugins/htmlscrubber.mdwn
updates
[git.ikiwiki.info.git] / doc / plugins / htmlscrubber.mdwn
1 This plugin is enabled by default. It sanitizes the html on pages it renders
2 to avoid XSS attacks and the like.
4 It excludes all html tags and attributes except for those that are
5 whitelisted using the same lists as used by Mark Pilgrim's Universal Feed
6 Parser, documented at <http://feedparser.org/docs/html-sanitization.html>.
7 Notably it strips `style`, `link`, and the `style` attribute.
9 It uses the HTML::Scrubber perl module to perform its html
10 sanitisation, and this perl module also deals with various entity encoding
11 tricks.
13 While I believe that this makes ikiwiki as resistant to malicious html
14 content as anything else on the web, I cannot guarantee that it will
15 actually protect every user of every browser from every browser security
16 hole, badly designed feature, etc. I can provide NO WARRANTY, like it says
17 in ikiwiki's [GPL](GPL) license. 
19 The web's security model is *fundamentally broken*; ikiwiki's html
20 sanitisation is only a patch on the underlying gaping hole that is your web
21 browser.
23 ----
25 Some examples of embedded javascript that won't be let through when this
26 plugin is active:
28 * <span style="background: url(javascript:window.location='http://example.org/')">test</span>
29 * <span style="&#x61;&#x6e;&#x79;&#x3a;&#x20;&#x65;&#x78;&#x70;&#x72;&#x65;&#x73;&#x73;&#x69;&#x6f;&#x6e;&#x28;&#x77;&#x69;&#x6e;&#x64;&#x6f;&#x77;&#x2e;&#x6c;&#x6f;&#x63;&#x61;&#x74;&#x69;&#x6f;&#x6e;&#x3d;&#x27;&#x68;&#x74;&#x74;&#x70;&#x3a;&#x2f;&#x2f;&#x65;&#x78;&#x61;&#x6d;&#x70;&#x6c;&#x65;&#x2e;&#x6f;&#x72;&#x67;&#x2f;&#x27;&#x29;">test</span>
30 * <span style="&#97;&#110;&#121;&#58;&#32;&#101;&#120;&#112;&#114;&#101;&#115;&#115;&#105;&#111;&#110;&#40;&#119;&#105;&#110;&#100;&#111;&#119;&#46;&#108;&#111;&#99;&#97;&#116;&#105;&#111;&#110;&#61;&#39;&#104;&#116;&#116;&#112;&#58;&#47;&#47;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#111;&#114;&#103;&#47;&#39;&#41;">test</span>
32 [[tag type/html type/core]]