Skip to main content

ModSecurity

Kindclass
Packagebackend
Full namebackend.ModSecurity
Sourcesource/backend/ModSecurity.hx
Metadata@:unreflective

Public fields​

NameTypeStaticDefaultNotes
LOOSE_MOD_NAMEStringyes'<loose mods>'final

Public methods​

checkScript​

static function checkScript(scriptName:String, source:String, language:String):ModSecurityCheck

Inspect one script. Findings mean the caller must not create/execute it.

ParameterTypeDefault
scriptNameString—
sourceString—
languageString—

View source

report​

static function report(check:ModSecurityCheck, ?sink:String->Void):Void

Emit the user-facing warning/block report. sink is normally the PlayState debug console; trace output is always produced as a durable log.

ParameterTypeDefault
checkModSecurityCheck—
sink (optional)String->Void—

View source

formatRuntimeBlock​

static function formatRuntimeBlock(modName:String, scriptName:String, capability:String, line:Int = 0):String
ParameterTypeDefault
modNameString—
scriptNameString—
capabilityString—
line (optional)Int0

View source

runtimeRuleForCallback​

static function runtimeRuleForCallback(callbackName:String):Null<String>
ParameterTypeDefault
callbackNameString—

View source

isRuleAllowed​

static inline function isRuleAllowed(rule:String, allowlist:Array<String>):Bool
ParameterTypeDefault
ruleString—
allowlistArray<String>—

View source

isRuntimeCallbackBlocked​

static function isRuntimeCallbackBlocked(callbackName:String, sandboxed:Bool, allowlist:Array<String>):Bool
ParameterTypeDefault
callbackNameString—
sandboxedBool—
allowlistArray<String>—

View source

isPrivilegedClass​

static function isPrivilegedClass(className:String):Bool

Classes that reflection callbacks must never expose to sandboxed mods.

ParameterTypeDefault
classNameString—

View source

luaBootstrap​

static function luaBootstrap(allowlist:Array<String>):String

Lua code installed immediately after openlibs(). Each non-allowlisted standard-library category becomes a sealed proxy whose calls fail before reaching LuaJIT/FFI/OS code. package.loaded is replaced too so require() cannot recover a reference after only one category was allowlisted.

ParameterTypeDefault
allowlistArray<String>—

View source

clearCache​

static function clearCache():Void

Drop cached pack.json decisions (mainly useful after an in-process reload).

View source

Internals​

Private / internal members
FieldTypeStatic
BLOCKED_CALLBACK_RULESMap<String, String>yes
configCacheMap<String, ModSandboxConfig>yes
warnedOptOutModsMap<String, Bool>yes
Method
static function getConfig(folder:Null<String>):ModSandboxConfig
static function appendAllowlist(output:Array<String>, raw:Dynamic):Void
static function mergeFindings(output:Array<ScriptSecurityFinding>, extra:Array<ScriptSecurityFinding>):Void
static function findModOwner(path:String)
static function normalizePath(path:String):String
static function displayPath(path:String, folder:Null<String>):String
static function emit(message:String, sink:Null<String->Void>):Void