Re: Security



Steve-o <stknig@xxxxxxxxxxxxxx> writes:

The only
thing I can think of is to be careful of code-injection type problems
where evaluating s-expressions from an untrusted source could be
harmful. But that's pretty obvious.

A little less obvious is that by using #. you can invoke the evaluator
simply by READing an expression. That is why it is wise to bind
*READ-EVAL* to NIL when reading expressions that you can't trust. That
inhibits the evaluation during reading that is normally triggered by the
#. construct.

*PRINT-CIRCLE* should also be used if you are reading structures, or
else you may end up with a circular structure that takes forever to
print. Circular structure can be introduced during reads of
S-expressions, and AFAIK you can't turn that part of the reader off:

#1=(A B . #1#)

--
Thomas A. Russ, USC/Information Sciences Institute
.



Relevant Pages

  • Re: sequence point problem
    ... makes it clear that a sequence point separates the ... However that word appears in a context where it ... I've never thought that the reading I said above was reasonable. ... prevent it from being put before evaluating arguments, ...
    (comp.std.c)
  • How to derive this equation?
    ... I'm reading Proakis's book, Digital Communications(4th ed.), ... The author is evaluating the ... performance of RAKE demodulator on frequency-selective fading channels. ...
    (comp.dsp)
  • Re: Feinstein Wont Rule Out Supporting Popular Vote Loser
    ... In reading anything they put out, ... advised to consider the source before evaluating the content. ... George Z. ... Diane Feinstein is a local politician, ...
    (soc.retirement)
  • Re: Is it possible to implement ,@ if it wasnt already there
    ... Evaluating the expression at read- ... time and then substituting a function object into the source code? ... Instead of checking for an embedded (by reading ... you implement a proper type test: ...
    (comp.lang.lisp)