[Posted to comp.infosystems.www, comp.lang.perl and comp.lang.tcl]
Mosaic 2.5beta supports the CCI Common Client Interface, a protocol
for communication between the Mosaic client and external viewers
spawned by it in response to different MIME types. This creates the
possibility for client-side scripting on the Web, particularly for
MIME types corresponding to interpreted scripting languages such as
Perl, Tcl, Python, etc.
Unfortunately client-side scripting opens up a tremendous
security loophole. Once one has configured one's .mailcap to make
Mosaic launch a Perl/Tcl/whatever interpreter in response to the
appropriate MIME type, one is fair game for any malicious or bumbling
scripter who happens to put some bad code onto the Web. In Perl, for
example, one could easily write an "rm -R *" script that would then
execute with the privileges of the Mosaic user. Since the Web
encourages a "click-first, ask questions later" style of exploration,
one might well download such scripts before even realizing that it was
a script rather than a document at the other end. The risk is so great
that a responsible developer cannot develop for an insecure CCI, and
in so doing encourage his users to open themselves up to this sort of
attack.
As near as I can tell, the only scripting language that
addresses these issues at all is the SafeTcl (or swish) dialect of
Tcl, which disables all (? one hopes...) potentially harmful commands
of Tcl. I have not been able to find a SafeTcl with the CCI API compiled
into it, however. NCSA at this moment appears to be developing (and presumably
endorsing) a Perl + CCI scripting language with no security provisions
whatsoever.
I would like to hear from anyone who
*has or knows of or plans to develop a SafeTcl + Tk/X + CCI API
*has or knows of or plans to develop a safe Perl
Please forgive cross-post to Tcl, Perl and WWW groups; it seemed
appropriate.
-Stan
References:
Mosaiic 2.5B, CCI, PerlCCI
|