aldobr wrote:3 - Computer interface (its currently impossible)
aldobr wrote:8 - sub-block machines (a machine that is a single block for the server, but is a complex machine at client side) with input and outputs to minetest world. (computers, microcontrollers).
aldobr wrote:9 - with some engine adjustments, you can render, say, videos to a texture locally (minetest tv set) etc.
aldobr wrote:floppies and ram needs to be stored client side
Can you clarify what a "computer interface" is?
Why should the client calculate these things instead of the server?
This would prevent multiple people from using such thing at once.
Client-sie Lua won't have filesystem access, even if you have a video implementing a video decoder in lua is probably not a good idea.
This goes against the principle of the server having the map with everything that belong to it. And again multiple players won't be able to use one device at once.
aldobr wrote:with the plus side of being a distributed system where the load is shared across clients whenever possible/makes sense.
aldobr wrote:Client-sie Lua won't have filesystem access, even if you have a video implementing a video decoder in lua is probably not a good idea.
You wont implement a video decoder in lua but allows lua to access codec dlls/so via a white list of dll/so that can be accessed using luaffi.
aldobr wrote:This goes against the principle of the server having the map with everything that belong to it. And again multiple players won't be able to use one device at once.
uploading arbitrary files to the server is a [...] security risk.
aldobr wrote:it makes more sense to store them locally
Minetest is going to get an Android version soon, I don't think it is a good idea to add additional load to phones which already have spare resources available. (Not only about not being fast enough, but also about battery life)
So if someone finds a vunerability in any of the allowed DLLs you're basically screwed?Can you explain why this is a security risk?
aldobr wrote:Minetest is going to get an Android version soon, I don't think it is a good idea to add additional load to phones which already have spare resources available. (Not only about not being fast enough, but also about battery life)
Think about that way :
You have a task that is pretty simple : draw a game map onscreen based on the current chunk.
You have 30 clients online.
The server draws the map 30x with different chunks and player positions.
If we offload the task to the clients, they will have to draw the map only once.
aldobr wrote:8 - sub-block machines (a machine that is a single block for the server, but is a complex machine at client side) with input and outputs to minetest world. (computers, microcontrollers).
aldobr wrote:So if someone finds a vunerability in any of the allowed DLLs you're basically screwed?
Where is harder to find a vulnerability : in ffmpeg library or in minetest ?
aldobr wrote:You can allways create a stub library that exports only interesting functions and filters parameters and whitelist that library.
aldobr wrote:Can you explain why this is a security risk?
Every time a server has to do something on behalf of a external client (instead of on behalf of a local user), this is a security risk, because the server usually runs under a uid with much higher powers than an casual user would have if he was directly logged into the OS instead of via a server.
aldobr wrote:So if you run your minetest server with root user privileges,
aldobr wrote:any bug in the server will allow malicious clients to damage files that are only accessible to the client. This is much more of a security risk than allowing the emulated CPU run on the client side and accessing client resources.
aldobr wrote:Besides this is just a matter of deciding where we intend of having more risks: client side or server side.
Your whole example is invalid because you were talking about computers or microcontrollers before.
Equally hard.
Any outward facing services should run with minimal privileges (meaning that they can only use what they need to use).
If somebody is willing to risk their whole server by running a service with root privileges, there is nothing anyone can do to save that person.
Any bug in the client will allow malicious server to access/damage files that are normally not accessible.
Having more risks on the client side is bad because there are way more client than there are servers.
aldobr wrote:Equally hard.
[...] fmpeg is safer
aldobr wrote:and is used in a lot of places.
aldobr wrote:Any outward facing services should run with minimal privileges (meaning that they can only use what they need to use).
[...] he can at least ruin the game and annoy other players...
aldobr wrote:If somebody is willing to risk their whole server by running a service with root privileges, there is nothing anyone can do to save that person.
Even if not compromised initialy as root, gaining user level access to a system is usually the first step into hacking the server...
aldobr wrote:Any bug in the client will allow malicious server to access/damage files that are normally not accessible.
lua sandboxing.
aldobr wrote:Having more risks on the client side is bad because there are way more client than there are servers.
simply disable lua client scripting.
citation needed
Not an argument for that.
This should be solved by the mod itself and not Minetest itself.
Sandboxing is hard, what if there is a bug in the sandbox?
So yo want no client side lua at all?
Please do not bitch about client-side modding: the open source nature of Minetest has gone nowhere. [stuff about patches being welcome goes here, I don't remember it]
sfan5 wrote:This goes against the principle of the server having the map with everything that belong to it.
Users browsing this forum: No registered users and 12 guests