WikiSecurity

Безопасность ScriptsLab


🔒 Безопасность ScriptsLab

Руководство по обеспечению безопасности при использовании ScriptsLab.


Песочница (Sandbox)

Песочница — это режим работы скриптов, при котором ограничивается доступ к опасным функциям Java и системы.

Включение песочницы

# config.yml
security:
  sandbox-enabled: true
ЗначениеУровень безопасностиРекомендация
falseНизкийПриватные серверы, доверенные скрипты
trueВысокийПубличные серверы, непроверенные скрипты

Важно: На публичных серверах настоятельно рекомендуется использовать sandbox-enabled: true!


Разрешенные пакеты (Allowed Packages)

В режиме песочницы скрипты могут использовать только указанные Java-пакеты.

Настройка

security:
  allowed-packages:
    - org.bukkit
    - org.bukkit.entity
    - net.kyori
    - java.util
    - java.lang
    - java.util.concurrent
ПакетОписание
org.bukkitОсновной API Bukkit
org.bukkit.entityСущности (игроки, мобы)
net.kyoriMiniMessage и компоненты
java.utilУтилиты Java (List, Map)
java.langБазовые классы

Заблокированные операции (Blocked Operations)

Список операций, которые запрещены в песочнице:

security:
  blocked-operations:
    - file-write
    - file-delete
    - system-exec
    - network-access
    - reflection
ОперацияОписаниеРиск
file-writeЗапись в файлыИзменение системы
file-deleteУдаление файловПотеря данных
system-execВыполнение системных командRCE уязвимость
network-accessСетевые запросыУтечка данных
reflectionJava Reflection APIОбход защиты

Лучшие практики безопасности

1. Минимальные права

Используйте минимальный набор разрешенных пакетов:

security:
  allowed-packages:
    - org.bukkit
    - java.util
    - java.lang

2. Проверка скриптов

Всегда проверяйте скрипты перед добавлением на сервер:

  • Ищите вызовы java.lang.Runtime
  • Проверяйте сетевые запросы
  • Следите за работой с файлами

3. Изоляция модулей

Используйте модули для изоляции функциональности разных скриптов.

4. Регулярные обновления

Обновляйте ScriptsLab для получения последних патчей безопасности.


Безопасность на публичном сервере

Рекомендуемая конфигурация

security:
  sandbox-enabled: true
  allowed-packages:
    - org.bukkit
    - org.bukkit.entity
    - net.kyori
    - java.util
    - java.lang
  blocked-operations:
    - file-write
    - file-delete
    - system-exec
    - network-access
    - reflection

Чек-лист

  • Включена песочница
  • Ограничены пакеты
  • Заблокированы опасные операции
  • Скрипты проверены
  • Права игроков ограничены

Troubleshooting

Скрипт не работает в песочнице

Проблема: Скрипт выдает ошибку доступа.

Решение:

  1. Проверьте, не использует ли скрипт заблокированные пакеты
  2. Добавьте нужный пакет в allowed-packages
  3. Или отключите песочницу (не рекомендуется)

"Access denied" ошибка

Проблема: java.security.AccessControlException

Решение: Добавьте нужный пакет в конфигурацию:

security:
  allowed-packages:
    - needed.package

Следующие шаги

ШагОписание
КонфигурацияНастройка безопасности
МодулиИзоляция кода
FAQЧастые вопросы

🔒 ScriptsLab Security

Security guidelines for using ScriptsLab.


Sandbox

Sandbox mode restricts scripts' access to dangerous Java functions and system operations.

Enabling Sandbox

# config.yml
security:
  sandbox-enabled: true
ValueSecurity LevelRecommendation
falseLowPrivate servers, trusted scripts
trueHighPublic servers, unverified scripts

Important: On public servers, it is strongly recommended to use sandbox-enabled: true!


Allowed Packages

In sandbox mode, scripts can only use specified Java packages.

Configuration

security:
  allowed-packages:
    - org.bukkit
    - org.bukkit.entity
    - net.kyori
    - java.util
    - java.lang
    - java.util.concurrent
PackageDescription
org.bukkitCore Bukkit API
org.bukkit.entityEntities (players, mobs)
net.kyoriMiniMessage and components
java.utilJava utilities (List, Map)
java.langBase classes

Blocked Operations

List of operations prohibited in the sandbox:

security:
  blocked-operations:
    - file-write
    - file-delete
    - system-exec
    - network-access
    - reflection
OperationDescriptionRisk
file-writeWriting to filesSystem modification
file-deleteDeleting filesData loss
system-execExecuting system commandsRCE vulnerability
network-accessNetwork requestsData leakage
reflectionJava Reflection APIBypass protection

Security Best Practices

1. Minimal Permissions

Use a minimal set of allowed packages:

security:
  allowed-packages:
    - org.bukkit
    - java.util
    - java.lang

2. Script Verification

Always verify scripts before adding them to the server:

  • Look for java.lang.Runtime calls
  • Check network requests
  • Monitor file operations

3. Module Isolation

Use modules to isolate functionality of different scripts.

4. Regular Updates

Update ScriptsLab to get the latest security patches.


Public Server Security

Recommended Configuration

security:
  sandbox-enabled: true
  allowed-packages:
    - org.bukkit
    - org.bukkit.entity
    - net.kyori
    - java.util
    - java.lang
  blocked-operations:
    - file-write
    - file-delete
    - system-exec
    - network-access
    - reflection

Checklist

  • Sandbox enabled
  • Packages restricted
  • Dangerous operations blocked
  • Scripts verified
  • Player permissions limited

Troubleshooting

Script not working in sandbox

Problem: Script throws access error.

Solution:

  1. Check if the script uses blocked packages
  2. Add the required package to allowed-packages
  3. Or disable sandbox (not recommended)

"Access denied" error

Problem: java.security.AccessControlException

Solution: Add the needed package to configuration:

security:
  allowed-packages:
    - needed.package

Next Steps

StepDescription
ConfigurationSecurity setup
ModulesCode isolation
FAQFrequently asked questions

Last updated Apr 29, 2026, 6:41 AM
Edit