확장 스크립트를 샌드 박스에서 실행해야합니까?


11

특히 이것은 루아 (luajit-2.0)로 작성된 게임 확장에 관한 것입니다. 나는이 스크립트들이 할 수있는 것을 제한해야하는지 고민하고 있었고 아마도 내가해서는 안된다는 결론에 도달했다.

  • 제대로하기가 어렵습니다. 어리석게 들리지만 샌드 박스가 어쨌든 누출 될 가능성이 있습니다.

  • 내가 생각할 수있는 유일한 이점은 타사 스크립트를 실행할 때 사용자에게 보안을 제공하는 것입니다.

  • 단점은 확장 기능 작성자에게는 매우 귀찮다는 것입니다. 즉, 현재로서는 게임 콘텐츠가 대부분 스크립팅됩니다.

내가 실제로 제시 할 수있는 것을 갖기 전에 지금 이것을 요구하는 이유는 샌드 박스를 조기에 추가하는 것이 쉽지만 나 자신에게도 성가신 제한을 부과하기 때문입니다. 그러나 처음에 계속 진행 한 다음 나중에 샌드 박스가 필요하다고 결정하면 문제가 발생합니다 (이미 존재하는 스크립트를 다시 작성하거나 일종의 신뢰 관리 시스템을 도입해야합니다) 그것은 가치보다 더 문제가있는 것 같습니다).


어떤 종류의 게임? 상용 제품의 경우 100.000 고객에게 판매되었으며, 좋아하는 사람이라면 누구나 스크립트를 작성할 수 있습니까? 또는 50 회 판매 된 제품의 경우 추가 스크립트를 제공하는 유일한 사람입니까?
Doc Brown

답변:


2

나는 중규모의 소프트웨어 개발에서 비디오 게임의 개발은 프로그래머가 항상 미래의 기능을 위해 레이어 교환 또는 무료 세트 옵션을 만들려고 노력할 것이라고 믿는다.

Lua 는 최종 사용자와 개발자에게 이러한 옵션을 쉽게 구현할 수있는 언어이지만, 오늘 내가 알 수있는 경험과 작업 공간을 쉽게 계획 할 수 있다는 의미는 아닙니다. 최종 사용자가 자신의 동작을 사용자 지정할 수있는 경우

샌드 박스 게임이 제공하는 것에 중점을두면 최종 사용이 이중 블레이드가 될 수 있음을 이해 하여 게임을 비선형적이고 재미 있고 재미있게 만들 수 있지만 동시에 쉬운 계획은 아닙니다. 작업 영역에서의 한계.

보안 관점에서 보면 환상적입니다! 확장을위한 좋은 테스트 환경은 모든 유형의 소프트웨어에서 구현되어야합니다.

결론적으로, 제품의 샌드 박스를 만들 가치는 없지만 최종 개발자는 개발자가 환경을 쉽게 구성 할 수 있기 때문에 실제로 개발자 또는 개발자 그룹이 더 많은 이점을 얻을 수 있다고 말할 수 있습니다. 기능 구조를 변경하십시오. 소프트웨어 확장 성에서와 같이 샌드 박스 게임이 확장 기능을 창의적으로 발전시키고 기능을 자연스럽게 진화시킬 수 있다고 확신합니다.


1
게임에서 '샌드 박스'를 사용하고 있다고 생각하지만 OP는 보안에서 사용했습니다. 그것들은 상당히 관련이없는 두 가지 개념으로 보입니다.
bdsl

2

제대로 얻기가 어렵다

실제로 함수 화이트리스트가 있는 기본 샌드 박스를 만든 다음 잠재적으로 안전하지 않은 함수의 사용자 지정 구현을 추가 하는 것은 그리 어렵지 않습니다 . 이 SO 질문 은 좋은 출발점처럼 보입니다.

하지만 내 샌드 박스가 어쨌든 누출 될 가능성이 있습니다

기본적인 보안을 제공하기에 충분하다고 생각합니다. 일부 특수 디렉토리 외부의 파일에 대한 액세스 제한. 어쨌든 100 % 안전한 응용 프로그램은 없습니다. 누군가 악의적 인 익스텐션을 작성할 경우 어떤 일이 발생할 수 있는지 생각해보십시오. 사용자는 아마도 개발자 인 당신을 비난 할 것입니다. 누군가에게 확장을 쓸 수있는 기회를 줄 계획이라면 결국 보안이 필요합니다. 그것이 당신이라면-그대로입니다.

내가 생각할 수있는 유일한 이점은 타사 스크립트를 실행할 때 사용자에게 보안을 제공하는 것입니다.

이것은 정확히 이유는 당신이 샌드 박싱을해야하며 샌드 박스에 대한 유효한 인수가 아닙니다.

단점은 확장 기능 작성자에게는 매우 귀찮다는 것입니다.

게임 스크립팅에 대한 경험이 있으며 샌드 박스 환경에서 자체적으로 작업하는 것이 성 가시지 않습니다. 나를 괴롭히는 것은 게임 내 오브젝트의 특정 API 또는 이와 같은 구현이 좋지 않은 것과 같은 게임 관련 기능이 부족하다는 것입니다.

LOVE 엔진을 좋은 예제 (아직 그렇지 않은 경우), 특히 filesytem API에 대한 자습서 로 살펴보면 도움이 될 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.