Безопасность 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.kyori | MiniMessage и компоненты |
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 | Сетевые запросы | Утечка данных |
reflection | Java 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
Скрипт не работает в песочнице
Проблема: Скрипт выдает ошибку доступа.
Решение:
- Проверьте, не использует ли скрипт заблокированные пакеты
- Добавьте нужный пакет в
allowed-packages - Или отключите песочницу (не рекомендуется)
"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
| Value | Security Level | Recommendation |
|---|---|---|
false | Low | Private servers, trusted scripts |
true | High | Public 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
| Package | Description |
|---|---|
org.bukkit | Core Bukkit API |
org.bukkit.entity | Entities (players, mobs) |
net.kyori | MiniMessage and components |
java.util | Java utilities (List, Map) |
java.lang | Base classes |
Blocked Operations
List of operations prohibited in the sandbox:
security:
blocked-operations:
- file-write
- file-delete
- system-exec
- network-access
- reflection
| Operation | Description | Risk |
|---|---|---|
file-write | Writing to files | System modification |
file-delete | Deleting files | Data loss |
system-exec | Executing system commands | RCE vulnerability |
network-access | Network requests | Data leakage |
reflection | Java Reflection API | Bypass 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.Runtimecalls - 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:
- Check if the script uses blocked packages
- Add the required package to
allowed-packages - 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
| Step | Description |
|---|---|
| Configuration | Security setup |
| Modules | Code isolation |
| FAQ | Frequently asked questions |