Thank you Raul, I've updated safe1 and safe2 to prevent arbitrary names that start with aLj... apply was the problem rather than u: I hope.
safe1 =: '''_0123456789+*-<>|;,#{}()[]' safe2 =: 'u:';'x:';'}.';'}:';'" ';'":';'! ';'$ ';'= ';'^ ';'^.';'a.';'a:';'L.';'L:';'j.';'i.';'i:' ----- Original Message ----- From: Raul Miller <rauldmil...@gmail.com> To: Programming forum <programm...@jsoftware.com> Cc: Sent: Wednesday, February 26, 2014 4:05:13 PM Subject: Re: [Jprogramming] introducing JON alternative to JSON On Wed, Feb 26, 2014 at 1:45 PM, Pascal Jasmin <godspiral2...@yahoo.ca> wrote: > My big question though is have I overlooked any potential unsafe code that > could be run with doSafe? Yes. Here's an example: exploit=: smoutput@3: doSafe '(u: ',(":u:inv 5!:5 <'exploit'),') apply 0' 3 Of course, there's not too much damage that a person could do with the number 3, but hopefully the pattern is obvious. Thanks, -- Raul ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm