Most elegant way to disable all BASIC functionality?

Andrew Douglas Pitonyak andrew at pitonyak.org
Mon Feb 27 18:08:04 PST 2012


On 02/27/2012 11:46 AM, Noel Power wrote:
> On 27/02/12 16:02, Andras Timar wrote:
>> Hi,
>>
>> 2012/2/27 Eike Rathke<erack at redhat.com>:
>>> If this is only about no BASIC should be executed, there's the
>>> configuration setting behind Tools->Options->Security, Macro Security.
>>> If Security Level is set to Very High and no paths are added to Trusted
>>> Sources, then no BASIC is executed at all (which btw I strongly
>>> recommend as a developer loading bug documents from external sources).
>>> So maybe hard-wiring that setting for the App-Store and not offer the
>>> dialog would be enough?
>> When I set Macro Security Very High, I can still run the Euro
>> Converter Wizard (written in Basic).
> I haven't been good at reading mail today and just saw this last 
> message ( I promise to read back the thread later ) but regarding the 
> Euro converter wizard isn't that written in Java ? Anyway regardless I 
> suppose if it is running BASIC libraries then it is bypassing that 
> Macro security stuff by calling basic directly, iirc the macro 
> security stuff operates at the level of user interaction and the event 
> handling framework so its still possible for core code to call BASIC 
> directly.
> Anyway it just goes to prove that to be absolutely sure we should just 
> clobber BASIC directly. I think that should be simple enough from a 
> runtime pov, there are just a couple of entry points to do with 
> compiling/running the BASIC code [*], making all/some of them ( at 
> compile-time ) no-ops might be the simplest way to disable things. 
> iirc there are quite some interdependencies between at least ( basctl, 
> framework, xmlscript, scripting & ( others ?) that would make the more 
> agreeable option of not building or delivering the basic module a 
> little harder to achieve without some deeper changes ( but we could 
> look into what is involved with that )
>
> Noel
>
> [*]
> SbModule::Compile ( I would guess if we force that to fail/do-nothing 
> will ensure no basic runs )
> SbMethod::Call
> StarBASIC::Call
>
> SbModule::Run
> StarBASIC::Call
Off hand, I would say that it would not matter that it can still run 
stuff distributed with it, but a creative person could perhaps modify 
things so that they added something that looked like it came with it....

-- 
Andrew Pitonyak
My Macro Document: http://www.pitonyak.org/AndrewMacro.odt
Info:  http://www.pitonyak.org/oo.php



More information about the LibreOffice mailing list