diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2019-10-29 13:33:18 +0000 |
|---|---|---|
| committer | s-ol <s-ol@users.noreply.github.com> | 2019-10-29 13:33:18 +0000 |
| commit | 16402fb6702f296d400bddb81561710d6cb37b6f (patch) | |
| tree | 073e3be2615f83f97587d737337df5a3f66b8cee | |
| parent | fixes (diff) | |
| download | mmm-16402fb6702f296d400bddb81561710d6cb37b6f.tar.gz mmm-16402fb6702f296d400bddb81561710d6cb37b6f.zip | |
fix the glaring security vulnerability i just implemented
| -rw-r--r-- | build/server.moon | 5 | ||||
| -rw-r--r-- | mmm/mmmfs/plugins/init.moon | 27 |
2 files changed, 20 insertions, 12 deletions
diff --git a/build/server.moon b/build/server.moon index d101d0b..b219c58 100644 --- a/build/server.moon +++ b/build/server.moon @@ -21,6 +21,8 @@ lfs = require 'lfs' server = require 'http.server' headers = require 'http.headers' +export UNSAFE + class Server new: (@store, opts={}) => opts = {k,v for k,v in pairs opts} @@ -29,6 +31,9 @@ class Server opts.onstream = @\stream opts.onerror = @\error + if opts.host == 'localhost' + UNSAFE = true + @editable_paths = opts.editable_paths @server = server.listen opts diff --git a/mmm/mmmfs/plugins/init.moon b/mmm/mmmfs/plugins/init.moon index 12fb061..583fbb4 100644 --- a/mmm/mmmfs/plugins/init.moon +++ b/mmm/mmmfs/plugins/init.moon @@ -130,12 +130,6 @@ converts = { parent.firstElementChild } { - inp: 'text/lua -> (.+)', - out: '%1', - cost: 0.5 - transform: loadwith load or loadstring - } - { inp: 'mmm/tpl -> (.+)', out: '%1', cost: 1 @@ -238,6 +232,14 @@ converts = { } } +if MODE == 'CLIENT' or UNSAFE + table.insert converts, { + inp: 'text/lua -> (.+)', + out: '%1', + cost: 0.5 + transform: loadwith load or loadstring + } + add_converts = (module) -> ok, plugin = pcall require, ".plugins.#{module}" @@ -265,12 +267,13 @@ if MODE == 'SERVER' ok, moon = pcall require, 'moonscript.base' if ok _load = moon.load or moon.loadstring - table.insert converts, { - inp: 'text/moonscript -> (.+)', - out: '%1', - cost: 1 - transform: loadwith moon.load or moon.loadstring - } + if UNSAFE + table.insert converts, { + inp: 'text/moonscript -> (.+)', + out: '%1', + cost: 1 + transform: loadwith moon.load or moon.loadstring + } table.insert converts, { inp: 'text/moonscript -> (.+)', |
