API: 샌드박스 모델

Roll20 API는 각 캠페인마다 서버 측 가상 머신을 특별히 실행하는 방식으로 작동합니다. 이는 사용자 지정 스크립트가 다른 사용자의 캠페인에 영향을 미칠 위험 없이 실행될 수 있는샌드박스 환경을 제공합니다. 또한 이는 악의적인 GM이 플레이어의 컴퓨터에 접근하거나 무한 루프로 컴퓨터를 멈추게 하는 등 해로운 행위를 할 수 있는 스크립트를 작성하는 것을 방지하는 보안 레이어를 제공합니다.


작동 방식

API가 어떻게 작동하는지에 대한 기술적 세부 사항이 궁금하다면, 다음은 간단한 다이어그램입니다:

사용자 작성 스크립트 ===> API 서버 ===> 캠페인 샌드박스 <===> 실시간 동기화 서버

Roll20 API 서버는 캠페인 내 활동을 수신 대기합니다. 사용자가 캠페인을 이용 중인 것을 감지하면, 해당 캠페인용 샌드박스를 생성하고 작성한 모든 모드(API) 스크립트를 샌드박스에 로드합니다. 샌드박스는 실시간 동기화 서버와 직접 데이터를 주고받을 수 있어 이벤트에 반응하고 게임에 변경 사항을 적용할 수 있습니다.


일반 자바스크립트의 제한 사항

Roll20 스크립트는 자바스크립트이지만, 웹사이트용 자바스크립트 프로그래밍에 익숙한 경우 주의해야 할 몇 가지 제한 사항이 있습니다. Roll20 스크립트는 Roll20 사이트와 분리된 샌드박스에서 실행됩니다. 이는 당사 시스템과 귀사의 플레이어에게 추가적인 분리 및 보안 레이어를 제공합니다. 이 샌드박스는 다음을 의미합니다:

  • HTTP 요청(AJAX)을 수행할 수 없습니다.
  • 외부 스크립트나 라이브러리(예: jQuery)를 로드할 수 없습니다.
  • 환경은 자바스크립트이지만, 브라우저 환경이 아니므로 DOM, 페이지 요소, CSS,문서, 등이 존재하지 않습니다.
 
도움이 되었습니까?
52명 중 37명이 도움이 되었다고 했습니다.