Kevin A. McGrail wrote:
Michael,

Thanks to Joseph Brennan, I use this code at the end of sub filter() to achieve what I believe you want:

Thank you. I guess I wasn't clear enough that the application is not Mimedefang. However:

           $badtag = $output =~ s/<(iframe|script|object)\b/<no-$1 /igs;

Would fix 90% of the problem.  It still leave other sources of scripts,
such as on the "onload" attribute in an image. It will also miss scripts hidden by character encodings. In the interests of having something that is quick and simple, however, I may do exactly the above.

On the other hand, once I'm ready to add that line of code, I may as well type, for example:

    my $stripped_html = detoxify($html, disallow => [qw(dynamic)]);

and get an that extra 9.9%, assuming the overhead of parsing the HTML isn't too high, and HTML::Detoxify (or HTML::Defang (or HTML::StripScripts)) really does what is claimed, and is updated as new exploits are discovered.

In the PHP world, there seems to be a new way to slip a script past the standard libraries discovered each week. But, at least the patches keep coming. (Not to pick on PHP, the problem is in HTML and the difficulty of actually detecting when a script is present. PHP does patch the problems as they are discovered.)

Mike

--
Michael D. Sofka               [email protected]
C&MT Sr. Systems Programmer,   Email, TeX, Epistemology
Rensselaer Polytechnic Institute, Troy, NY.  http://www.rpi.edu/~sofkam/
_______________________________________________
NOTE: If there is a disclaimer or other legal boilerplate in the above
message, it is NULL AND VOID.  You may ignore it.

Visit http://www.mimedefang.org and http://www.roaringpenguin.com
MIMEDefang mailing list [email protected]
http://lists.roaringpenguin.com/mailman/listinfo/mimedefang

Reply via email to