Skip to content

Unsafe functions #1972

Open
Open
@Disinterpreter

Description

@Disinterpreter

Describe the solution you'd like

From: #1937 (comment) #1782 we decided to allow unsafe functions only with ACL rights.

I'd like to start implementing new functions from ACL fixes.

In the first step we deny all unsafe functions
When we will be sure that these functions blocked by default, we can start to implement ones.

I suppose we should mode current os.* functions under ACL too.

Additional context

Put something like this in Default (check me with methods like "file:close")

<right name="function.require" access="false"></right>
<right name="function.dofile" access="false"></right>
<right name="function.loadfile" access="false"></right>
<right name="function.loadstring" access="false"></right>

<right name="function.os.execute" access="false"></right>
<right name="function.os.exit" access="false"></right>
<right name="function.os.getenv" access="false"></right>
<right name="function.os.remove" access="false"></right>
<right name="function.os.rename" access="false"></right>
<right name="function.os.setlocale" access="false"></right>
<right name="function.os.tmpname" access="false"></right>

<right name="function.io.close" access="false"></right>
<right name="function.io.flush" access="false"></right>
<right name="function.io.input" access="false"></right>
<right name="function.io.lines" access="false"></right>
<right name="function.io.open" access="false"></right>
<right name="function.io.output" access="false"></right>
<right name="function.io.popen" access="false"></right>
<right name="function.io.read" access="false"></right>
<right name="function.io.stderr" access="false"></right>
<right name="function.io.stdin" access="false"></right>
<right name="function.io.stdout" access="false"></right>
<right name="function.io.tmpfile" access="false"></right>
<right name="function.io.type" access="false"></right>
<right name="function.io.write" access="false"></right>
<right name="function.file:close" access="false"></right>
<right name="function.file:flush" access="false"></right>
<right name="function.file:lines" access="false"></right>
<right name="function.file:read" access="false"></right>
<right name="function.file:seek" access="false"></right>
<right name="function.file:setvbuf" access="false"></right>
<right name="function.file:write" access="false"></right>


<right name="function.package.cpath" access="false"></right>
<right name="function.package.loaded" access="false"></right>
<right name="function.package.loaders" access="false"></right>
<right name="function.package.loadlib" access="false"></right>
<right name="function.package.path" access="false"></right>
<right name="function.package.preload" access="false"></right>
<right name="function.package.seeall" access="false"></right>

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions