[Lispweb] CL-TAINT and friends
Richard Newman
r.newman at reading.ac.uk
Fri Dec 23 17:58:05 CST 2005
Alan,
Looks very useful! NESTRING is very attractive; I expect almost
everyone has a function hanging around to do that.
Goes on my 'things to learn about recent Araneida changes' list.
-R
On 23 Dec 2005, at 15:25, Alan Shields wrote:
> Hello everyone,
>
> Recently, while writing a web app, I wanted to keep the web app from
> trusting the user. Actually, that's not exactly it: I kept noticing
> myself parsing the user input over and over and over again in a
> certain
> way.
>
> I doubt I'm the only one.
>
> So, I extended the small system I wrote for tainting values for
> Araneida with a declarative construct that I think you might like/be
> intersted in. Keep in mind that while Araneida integrates this, the
> code
> is entirely separate (darcs repo at the end).
>
> Let's say that you're receiving GET parameters X, Y, and Z. They
> should
> all be integers or NIL.
>
> (with-detaint ((integer x y z))
> (format nil "x: ~S y: ~S z: ~S" x y z))
>
> Does pretty much what you're looking for.
>
> (with-detaint (((or integer 0) x y z))
> (format nil "x: ~S y: ~S z: ~S" x y z))
>
> If there's no integer, it returns 0.
>
> Here's another common one: S should be a string, but if it's empty it
> should be NIL.
>
> (with-detaint ((nestring s))
> (format nil "s: ~S" s))
>
> And there you are.
>
> There's a lot more to the library than that (symbols, pass through
> filters, matchers, etc), and there's more to come.
>
> I'd appreciate any input (besides "hook in regexps", which I already
> plan to do), and keep in mind this is only the product of about 8
> hours
> work.
>
> Enjoy,
> Alan Shields
>
> darcs repo: http://code.microarray.omrf.org/darcs/cl-taint/
> docs: http://code.microarray.omrf.org/darcs/cl-taint/taint-doc.html
>
> Araneida testing has this integrated already.
>
> _______________________________________________
> lispweb mailing list
> lispweb at red-bean.com
> http://www.red-bean.com/mailman/listinfo/lispweb
More information about the lispweb
mailing list