Hi,

I have added a framework for security features to GNU APL. These features need to
be enabled via ./configure, for example:

./configure SECURITY_LEVEL_WANTED=0
This is the default and leaves everything as is today.

./configure SECURITY_LEVEL_WANTED=2
This enables all security checks and will, in the long run, render the interpreter useless.

./configure SECURITY_LEVEL_WANTED=1
This enables security checks, but with a finer granularity. With this setting you can turn
individual security checks on and of in your preferences file(s). For example:

Profile 1
  disable_Quad_SQL          yes    # disable ⎕SQL
  disable_Quad_FIO          no     # do not disable ⎕FIO
  disable_native_functions  yes    # disable A ⎕FX B (native fnctions)


If you start GNU APL with profile 1, for example

apl -p 1

then ⎕SQL is disabled, ⎕FIO is enabled, and dyadic ⎕FX (aka. native functions) ia disabled.

If you have no Profile line before the security settings then the settings will be applied in all profiles (no -p option
on the GNU APL command line corresponds to profile 0).

If a user calls a disabled facility, then it will raise a DOMAIN ERROR and set )MORE accordingly.

Hope you like it,
Jürgen

Reply via email to