4 Here are some theoretical configuration ideas that we could implement some
5 time. Note the naming convention: %Namespace.Directive
7 %Attr.IDPrefix - prefix all ids with this
9 %Attr.RewriteFragments - if there's %Attr.IDPrefix we may want to transparently
10 rewrite the URLs we parse too. However, we can only do it when it's a pure
11 anchor link, so it's not foolproof
15 %Attr.ClassPolicy - determines what classes are allowed. When
16 %Attr.ClassPolicy is set to Blacklist, only allow those not in
17 %Attr.ClassBlacklist. When it's Whitelist, only allow those in
21 %Attr.MaxHeight - caps for width and height related checks.
22 (the hack in Pixels for an image crashing attack could be replaced by this)
24 %URI.Munge - will munge all external URIs to a different URI, which redirects
25 the user to the applicable page. A urlencoded version of the URI
26 will replace any instances of %s in the string. One possible
27 string is 'http://www.google.com/url?q=%s'. Useful for preventing
28 pagerank from being sent to other sites, but can also be used to
29 redirect to a splash page notifying user that they are leaving your
32 %URI.AddRelNofollow - will add rel="nofollow" to all links, preventing the
33 spread of ill-gotten pagerank
35 %URI.RelativeToAbsolute - transforms all relative URIs to absolute form
37 %URI.HostBlacklist - strings that if found in the host of a URI are disallowed
38 %URI.HostBlacklistRegex - regexes that if matching the host are disallowed
39 %URI.HostWhitelist - domain names that are excluded from the host blacklist
40 %URI.HostPolicy - determines whether or not its reject all and then whitelist
41 or allow all in then do specific blacklists with whitelist intervening.
42 'DenyAll' or 'AllowAll' (default)
44 %URI.DisableIPHosts - URIs that have IP addresses for hosts are disallowed.
45 Be sure to also grab unusual encodings (dword, hex and octal), which may
46 be currently be caught by regular DNS
47 %URI.DisableIDN - Disallow raw internationalized domain names. Punycode
48 will still be permitted.
50 %URI.ConvertUnusualIPHosts - transform dword/hex/octal IP addresses to the
52 %URI.ConvertAbsoluteDNS - Remove extra dots after host names that trigger
53 absolute DNS. While this is actually the preferred method according to
54 the RFC, most people opt to use a relative domain name relative to . (root).