Howdy, Ladislav:

  There is an equally simple effective defense to such an attack:

    ;- dump-it disposes the untrusted script

    check-object: :query
    unset 'query 
    if error? try [do %untrusted.r][dumpit]
    if not ok-changes? check-object/clear system/words [dump-it]

    As long as the untrusted script doesn't know where query has been
moved it'll have a much harder time clearing the modified status of
the system words. 

    There are some other more sneaky methods for hiding QUERY from an
untrusted script..  Beyond that, untrusted scripts can be analyzed
initially using LOAD/next to look for mischief.

        -jeff

> For additional security, point another word at QUERY first, >
> ie: 
> check-object: :query 
>
>  There is a simple effective attack against this:
>  1) somewhere in %untrusted.r use the statement:
>  query/clear system/words
>  Regards Ladislav

Reply via email to