Developer Portal
居家練習遊戲開發與投稿
居家訓練網提供開放的遊戲平台架構。開發者可使用 jsPsych 8 開發 HTML/ZIP 居家練習遊戲, 經自動化掃描與人工審核後發布至平台,並支援使用者單獨安裝 PWA。
Portable package
遊戲封裝規格:一個 HTML,或包含資產的 ZIP
開發者可提交單一 HTML 檔案,或提交根目錄含有 index.html 的 ZIP 壓縮檔;圖片、音效、字型與程式碼都必須放在遊戲包內。
- 檔案大小限制:上傳套件上限為 12 MB;解壓縮後總大小上限為 24 MB,單一檔案上限 8 MB。
- ZIP 結構:必須直接以
index.html為根目錄進入點,不得包在多層子資料夾內。 - 流程與生命週期:遊戲必須使用 jsPsych 8 管理實驗流程與刺激呈現,並以
RunTrainerHubJsPsychGame()啟動。 - 平台 Runtime 引用:jsPsych 8.2.3 與 Game SDK 由隔離執行站固定提供,請直接引用
/runtime/jspsych-8.2.3.js、/runtime/jspsych-8.2.3.css與/runtime/trainerhub-game-sdk-0.1.0.js,請勿自行打包 vendor 庫。
程式碼安全規範與阻擋規則
- 禁止混淆程式碼:投稿必須為未經混淆(Unobfuscated)的原始碼,單行不得超過 5000 字元,逃脫字元密度需低於 5%。
- 阻斷外部通訊:禁止使用
fetch、XMLHttpRequest、WebSocket、EventSource、sendBeacon或WebRTC。 - 禁止憑證與導頁操作:禁止存取
document.cookie、window.location、window.top、window.open或使用eval/new Function。 - 禁止多執行緒與動態腳本:禁止註冊
ServiceWorker、建立Worker/SharedWorker或動態載入外部腳本。 - 無個資蒐集:嚴格沙盒不開放相機、麥克風、定位或帳戶資料;請勿在遊戲中要求使用者輸入個資。
Security architecture
第三方遊戲的隔離與審核機制
- 物理隔離(Separate Domain):核准的遊戲檔案在與帳戶平台完全獨立的網域(
trainerhub-user-games.pages.dev)執行,完全無法讀取trainerhub.cc的 Cookie 或登入憑證。 - 沙盒機制(Strict Iframe Sandbox):平台一律以
sandbox="allow-scripts"iframe 載入遊戲,絕不開放allow-same-origin或allow-top-navigation。 - 阻斷外連 CSP:遊戲靜態檔案套用嚴格內容安全策略(
connect-src 'none'; worker-src 'none'; form-action 'none'),防止資料外傳。 - 安全通訊橋樑:遊戲透過
MessageChannel私有通訊埠回傳非識別性的當次彙總結果,以 session nonce 與遞增序號防禦重放攻擊。 - 自動掃描與人工審核:上傳時自動掃描 18 種危險 API;審核人員會在無憑證隔離環境試玩並查核原始碼,經 3 項查核確認後始可發布。
登入以開始投稿
請先點擊右上角的帳戶頭像進行登入。登入後即可在此上傳 HTML 或 ZIP 遊戲包、查看自動掃描結果與人工審核進度。