API: 샌드박스 모델

Roll20 API 기능은 각 캠페인마다 특수한 서버 측 가상 머신을 실행함으로써 작동합니다. 이는 사용자 정의 스크립트가 다른 사용자의 캠페인에 영향을 미치지 않고 실행될 수 있는샌드박스를 제공합니다. 또한, 이는 악의적인 GM이 플레이어의 컴퓨터에 액세스하거나 무한 루프로 컴퓨터를 멈출 수 있는 스크립트를 작성하는 것을 방지하는 보안 계층을 제공합니다.


작동 방식

API 기능의 기술적 세부 정보에 관심이 있다면, 간단한 다이어그램이 여기에 있습니다.

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

Roll20 API 서버는 캠페인에서의 활동을 감지합니다. 사용자가 캠페인을 사용하는 것을 감지하면, 해당 캠페인을 위한 샌드박스를 생성하고 작성한 모든 API 스크립트를 샌드박스에 로드합니다. 샌드박스는 실시간 동기화 서버로 직접 데이터를 받고 보낼 수 있으며, 이를 통해 이벤트에 응답하고 게임을 변경할 수 있습니다.


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

Roll20 스크립트는 JavaScript이지만, 웹 사이트를 위해 JavaScript를 프로그래밍하는 데 익숙하다면 알아두어야 할 몇 가지 제한 사항이 있습니다. Roll20 스크립트는 Roll20 사이트와 별도의 샌드박스에서 실행됩니다. 이는 시스템과 플레이어의 보안을 위한 추가적인 분리 및 보안을 제공합니다. 이 샌드박스는 다음을 의미합니다:

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