Allow ..... Tags = disarm

Furnish, Trever G TGFurnish at HERFF-JONES.COM
Wed Nov 5 15:07:13 GMT 2003

> -----Original Message-----
> From: Julian Field [mailto:mailscanner at ECS.SOTON.AC.UK]
> Sent: Wednesday, November 05, 2003 6:46 AM
> Subject: Allow ..... Tags = disarm
> Disarming Form Tags
> A "Form" tag is replaced with a "MailScannerFormxxxx" tag,
> where xxxx is an
> essentially random number (it's actually the process id). As
> this is an
> HTML tag not recognised by your email client (or web browser)
> it will just
> be ignored completely, as it should be according to the HTML spec.
> An "Input" tag is modified so its type is a "reset" button, and all
> JavaScript "on..." methods are removed.
> A "Button" tag is modified so its type is a "reset" button, and all
> JavaScript "on..." methods are removed.

What's the point of disarming input tags when form tags are taken out?  An
input without a form does nothing.

Changing the type of buttons seems like a very bad idea to me - I can easily
imagine a lot of confusion resulting and it doesn't seem like a useful

> Notes
> The point of the xxxx number on the end of each tag name is to protect
> against an attack in which a new XML object or stylesheet
> setting is used
> to create a new tag called "MailScannerForm" which has the
> same actions as
> a conventional "Form" tag.

I would prefer that the changes to the HTML be reversible - this makes that
more difficult.  Wouldn't it be just as useful to prepend
"MailScanner_%orgname%_"?  Seems like that would be enough to defeat the
attack.  And blocking both <script> tags and on* attributes means there's
nothing left that can examine the DOM to figure out the %orgname% string

Although I like the ability to disarm Javascript on* attributes, I'd prefer
they were just disarmed, not removed.  Makes debugging much easier.  Ditto
for codebase attributes.

And although it's great to have this implemented in MS at all (thanks!), I
wish it were just a list of tags I could specify arbitrarily.  For example,
a new config file variable, "Tags To Disarm" could be defined.  It could
contain either a ruleset or a list of tags.  The tags in the list would get
"disarmed" by prepending something like "MailScanner_%orgname_" to them.

More information about the MailScanner mailing list