ШІ-інструменти та скрипти
Перевірка безпеки Roblox Luau
Перевіряйте код Roblox Luau перед публікацією: remote-події, що довіряють ціні чи кількості від клієнта, бекдори через loadstring і require(assetId), вебхуки та ключі в скриптах, які можуть прочитати гравці, виклики DataStore без pcall, нефільтрований текст.
Що ви отримаєте: 1 файл · 56.28 KB · ZIP
Переглянути варіанти купівліОпис товару
Remote-подія магазину, що виконує coins.Value -= price із ціною, яку надіслав клієнт, дає змогу будь-якому експлойтеру купити меч за -1000 монет і стати багатшим, а вебхук Discord у ModuleScript у ReplicatedStorage може прочитати кожен гравець, який його декомпілює. Цей навик знаходить такі та інші помилки Roblox, наведені нижче, ще до публікації і підказує, як виправити кожну з них.
Ваш агент запускає сканер для ваших файлів .luau і .lua та файлів проєкту Rojo (default.project.json та інших файлів *.project.json / .jsonc). Він читає файл проєкту, щоб дізнатися, куди в грі потрапляє кожна тека, тож знає, які LocalScript і ModuleScript отримують гравці, а який код залишається на сервері; без файлу проєкту він використовує звичні для Rojo теки src/server, src/client і src/shared та імена .server.luau / .client.luau. Він розуміє рядки Luau, інтерпольовані рядки, вирази if-then-else та анотації типів, відстежує аргументи клієнта через локальні змінні в OnServerEvent, OnServerInvoke, клієнтських методах Knit і обробниках Comm, вважає ціну, яку шукає сервер (ShopItems[itemName].Price), значенням сервера і пропускає встановлені пакети. Він ніколи не запускає ваш код і не звертається до Roblox. Результат: BLOCK, REVIEW або NOT FLAGGED із файлом, рядком, причиною та безпечнішим підходом, а посібник із правил містить посилання на офіційну сторінку Roblox, на якій ґрунтується кожне правило. Секрети ніколи не виводяться.
Що перевіряється
Він має 5 правил BLOCK і 10 правил REVIEW.
BLOCK (виправте перед випуском)
- R01: обробник remote-події записує значення, надіслане клієнтом, у leaderstats, поле валюти чи статистики, здоров'я (TakeDamage), збережені дані (profile.Data, включно з Data[key] = value із ключем від клієнта), атрибут статистики, допоміжну функцію статистики на кшталт AddCoins чи coinStore:Increment або запис у DataStore (UpdateAsync оцінюється всередині його функції перетворення) без фіксованої межі, обмеження діапазону, пошуку на сервері чи валідатора
- R02: loadstring або увімкнений LoadStringEnabled у скрипті чи у файлі проєкту Rojo
- R03: require() з ID ассета (число, hex, tonumber(...) або ім'я, якому присвоєно число), класичний бекдор безкоштовних моделей
- R04: URL вебхуків, ключі чи токени в параметрах URL, заголовки Authorization і значення, схожі на ключі, під іменами key, token, secret чи password у LocalScript або ModuleScript, що реплікується гравцям (ігрові слова на кшталт TokenShop_v2 не чіпаються)
- R05: cookie облікового запису .ROBLOSECURITY будь-де в коді
REVIEW (перевірте перед релізом)
- R11: аргументи remote-подій, використані без перевірки під час виконання (анотації типів не є перевірками), і числа, що потрапляють у статистику після перевірок діапазону, але без перевірки на NaN
- R12: обробники remote-подій, що виконують затратну роботу (виклики Async, Instance.new, Clone), у файлі без кулдауну чи обмеження частоти
- R13: RemoteFunction:InvokeClient
- R14: getfenv або setfenv
- R15: виклики DataStore поза pcall, Promise чи допоміжною функцією повторних спроб
- R16: обфускований або прихований код: довгі екрановані байтові рядки, довгі списки string.char, довгі закодовані рядки, код, зсунутий пробілами за межі екрана
- R17: ті самі секрети, що й у R04, у серверному коді або в скриптах, місце яких у грі неможливо визначити, а також значення під секретними іменами, які можуть бути секретами, але не схожі на згенеровані ключі
- R18: обробник remote-події знищує, переміщує чи змінює батька Instance, переданого клієнтом, або змінює здоров'я чи статистику Instance, вибраного клієнтом, не перевіривши, що той належить гравцю або перебуває в радіусі дії
- R19: текст гравця з remote-події, виведений на TextLabel або надісланий усім клієнтам у файлі, який ніколи не фільтрує текст
- R20: нагороди за developer product, що видаються в PromptProductPurchaseFinished замість ProcessReceipt, або LocalScript, що запитує їх у сервера з цієї події
Що входить до комплекту
- Сканер (Python 3.9+, лише стандартна бібліотека)
- Посібник із правил із причиною, безпечнішим підходом і посиланням на офіційну документацію Roblox для кожного правила
- Ризикований і безпечний приклади проєкту Rojo, а також справжній звіт, який сканер видає для ризикованого прикладу
Обмеження
Він читає кожен файл у тому вигляді, як його написано, і відстежує значення від клієнта через локальні змінні в межах одного обробника, а не в інших модулях, тому перевірки в спільному модулі валідації, middleware або бібліотеках remote-подій, як-от BridgeNet, ByteNet, Red, Zap чи Blink, не помічаються, а обробники, зареєстровані через ці бібліотеки, не аналізуються. Статистика розпізнається за цілими словами в назвах (Coins, Cash, Gems, XP, Level, Wins тощо), тому валюту з незвичною назвою можна пропустити, а секрети під незвичними іменами не повідомляються. Обмеження частоти чи фільтр тексту будь-де у файлі зараховується для кожного обробника в ньому. Файли місць (.rbxl, .rbxm) і налаштування Studio поза файлом проєкту не читаються. Власний приклад remote-події від Roblox (деталь, створена з кольору та позиції від клієнта) навмисно отримує R11 і R12. NOT FLAGGED не є гарантією.
Вміст
Один ZIP-файл із 30 файлами: SKILL.md, сканер у scripts/ (7 файлів Python), references/rules.md (кожне правило з причиною та безпечнішим підходом) і examples/ (20 файлів-прикладів плюс report.md, справжній вивід сканера для ризикованого прикладу).
Як користуватися: Це навик для агента: тека з файлом SKILL.md і скриптами Python, які може запускати агент для програмування зі штучним інтелектом, наприклад Claude Code, Cursor або Codex CLI. Розпакуйте її в теку навичок вашого агента (для Claude Code: ~/.claude/skills/), а потім попросіть агента перевірити ваш проєкт. Скрипти також працюють самостійно з Python 3.9 або новішим, нічого не потрібно встановлювати. Вони лише читають ваші файли: без доступу до мережі, і нічого нікуди не надсилається.
Що ви отримаєте
1 файл · 56.28 KB
- roblox-luau-safety-check-1.0.0.zipZIP · 56.28 KB
ШІ-інструменти та скрипти
Перевірка безпеки Roblox Luau
Перевіряйте код Roblox Luau перед публікацією: remote-події, що довіряють ціні чи кількості від клієнта, бекдори через loadstring і require(assetId), вебхуки та ключі в скриптах, які можуть прочитати гравці, виклики DataStore без pcall, нефільтрований текст.
Getly відкрив завантажені файли й не знайшов нічого, що завадило б їх відкрити. Це не антивірусна перевірка і не оцінка якості.
Теги
Поширені запитання
Чи отримаю я доступ одразу?
Так. Це цифровий товар: ви можете завантажити його одразу після оплати, просто зі своєї бібліотеки.
Чи можна використовувати його в комерційних проєктах?
Так. Комерційне використання дозволено: користуйтеся в особистому бізнесі та в тому, що продаєте. Ви не можете перепродавати чи поширювати сам файл.
Яка у вас політика повернення коштів?
Ви можете запросити повернення коштів протягом 30 дн. Якщо щось не так, подайте запит зі свого замовлення, і команда Getly його розгляне.
Які формати та розміри файлів я отримаю?
Ви завантажите 1 файл - ZIP - загалом 56.28 KB.
Чи отримую я безкоштовні оновлення?
Так: коли продавець випускає нову версію, ви можете повторно завантажити свіжі файли зі своєї бібліотеки безкоштовно. Останні оновлення дивіться в журналі змін.
Ціна
$5.00



