mirror of
https://github.com/luau-lang/luau.git
synced 2024-11-15 22:35:43 +08:00
Update sandbox.md
Exclude debug.getinfo for now as we haven't enabled it yet for Roblox
This commit is contained in:
parent
2e6354f4a7
commit
7252cbdede
@ -15,7 +15,7 @@ The following libraries and global functions have been removed as a result:
|
|||||||
- `io.` library has been removed entirely, as it gives access to files and allows running processes
|
- `io.` library has been removed entirely, as it gives access to files and allows running processes
|
||||||
- `package.` library has been removed entirely, as it gives access to files and allows loading native modules
|
- `package.` library has been removed entirely, as it gives access to files and allows loading native modules
|
||||||
- `os.` library has been cleaned up from file and environment access functions (`execute`, `exit`, etc.). The only supported functions in the library are `clock`, `date`, `difftime` and `time`.
|
- `os.` library has been cleaned up from file and environment access functions (`execute`, `exit`, etc.). The only supported functions in the library are `clock`, `date`, `difftime` and `time`.
|
||||||
- `debug.` library has been removed to a large extent, as it has functions that aren't memory safe and other functions break isolation; the only supported functions are `traceback` and `getinfo` (with reduced functionality).
|
- `debug.` library has been removed to a large extent, as it has functions that aren't memory safe and other functions break isolation; the only supported functions are `traceback` ~~and `getinfo` (with reduced functionality)~~.
|
||||||
- `dofile` and `loadfile` allowed access to file system and have been removed.
|
- `dofile` and `loadfile` allowed access to file system and have been removed.
|
||||||
|
|
||||||
To achieve memory safety, access to function bytecode has been removed. Bytecode is hard to validate and using untrusted bytecode may lead to exploits. Thus, `loadstring` doesn't work with bytecode inputs, and `string.dump`/`load` have been removed as they aren't necessary anymore. When embedding Luau, bytecode should be encrypted/signed to prevent MITM attacks as well, as the VM assumes that the bytecode was generated by the Luau compiler (which never produces invalid/unsafe bytecode).
|
To achieve memory safety, access to function bytecode has been removed. Bytecode is hard to validate and using untrusted bytecode may lead to exploits. Thus, `loadstring` doesn't work with bytecode inputs, and `string.dump`/`load` have been removed as they aren't necessary anymore. When embedding Luau, bytecode should be encrypted/signed to prevent MITM attacks as well, as the VM assumes that the bytecode was generated by the Luau compiler (which never produces invalid/unsafe bytecode).
|
||||||
|
Loading…
Reference in New Issue
Block a user