샌드 박싱이란 무엇입니까?


118

Wikipedia 기사를 읽었 지만 그것이 의미하는 바가 무엇인지, 버전 관리 와 얼마나 유사한 지 잘 모르겠습니다 .

누군가 샌드 박싱이 무엇인지 아주 간단한 용어로 설명 할 수 있다면 도움이 될 것입니다.

답변:


266

여기에 이미지 설명 입력

모래밭 또는 샌드 박스는 아이들이 놀 수있는 모래로 채워진 낮은 넓은 용기 또는 얕은 우울증이다. 아이들이있는 많은 집주인들은 많은 놀이터 장비와 달리 쉽고 저렴하게 지을 수 있기 때문에 뒷마당에 모래 구덩이를 만듭니다. "모래 구덩이"는 노천 구덩이 모래 광산을 나타낼 수도 있습니다.

음, 소프트웨어 샌드 박스는 어린이가 놀 수 있도록 만들어진 샌드 박스와 다르지 않습니다. 아이에게 샌드 박스를 제공함으로써 우리는 실제 놀이터 (즉, isolated environment) 의 환경을 시뮬레이션 하지만 아이가 할 수있는 일에 제한을 둡니다. 우리는 아이가 감염되는 것을 원치 않거나 아이가 다른 사람에게 문제를 일으키는 것을 원치 않기 때문입니다. :) 이유가 무엇인지, 우리는 단지 아이가 무엇을 할 수 있는지에 제한을 두길 원합니다 Security Reasons.

이제 소프트웨어 샌드 박스에 와서 모든 소프트웨어 (자식)가 실행 (재생)하도록 허용하지만, 그가 할 수있는 작업에는 약간의 제한이 있습니다. 실행중인 소프트웨어가 할 수있는 일에 대해 안전하고 안전 하다고 느낄 수 있습니다.

바이러스 백신 소프트웨어를보고 사용했습니다. 권리? 또한 일종의 샌드 박스입니다. 모든 프로그램이 수행 할 수있는 작업에 제한을 둡니다. 악의적 인 활동이 감지되면 중지하고 사용자에게 "이 응용 프로그램이 리소스에 액세스하려고합니다. 허용 하시겠습니까?"라고 알립니다.

sandboxie 라는 프로그램을 다운로드하면 sandbox를 직접 체험 할 수 있습니다. 이 프로그램을 사용하면 통제 된 환경에서 모든 프로그램을 실행할 수 있습니다.

빨간색 화살표는 실행중인 프로그램에서 컴퓨터로 흐르는 변경 사항을 나타냅니다. 하드 디스크 (샌드 박스 없음)라고 표시된 상자에는 정상적으로 실행중인 프로그램의 변경 사항이 표시됩니다. 하드 디스크 (샌드 박스 포함)라고 표시된 상자는 Sandboxie에서 실행중인 프로그램의 변경 사항을 보여줍니다. 애니메이션은 Sandboxie가 변경 사항을 가로 채서 노란색 사각형으로 표시된 샌드 박스 내에서 격리 할 수 ​​있음을 보여줍니다. 또한 변경 사항을 그룹화하면 한 번에 모두 쉽게 삭제할 수 있음을 보여줍니다.

여기에 이미지 설명 입력

이제 프로그래머의 관점에서 샌드 박스는 애플리케이션에 허용되는 API를 제한하고 있습니다. 바이러스 백신 예제에서는 시스템 호출 (운영 체제 API)을 제한하고 있습니다.

또 다른 예는 topcoder와 같은 온라인 코딩 분야입니다. 코드 (프로그램)를 제출했지만 서버에서 실행됩니다. 를 들어 safety서버, 그들은 프로그램의 API의 액세스 수준을 제한해야합니다. 즉, 샌드 박스를 만들고 그 안에서 프로그램을 실행해야합니다.

적절한 sandox가있는 경우 바이러스에 감염된 파일을 실행하고 바이러스의 모든 악의적 인 활동을 중지하고 수행하려는 작업을 직접 확인할 수도 있습니다. 실제로 이것은 바이러스 백신 연구원의 첫 번째 단계가 될 것입니다.


31

이러한 샌드 박스 정의는 기본적으로 테스트 환경 (개발자 통합, 품질 보증, 단계 등)을 갖는 것을 의미합니다. 이러한 테스트 환경은 프로덕션을 모방하지만 프로덕션 리소스를 공유하지 않습니다. 완전히 분리 된 서버, 큐, 데이터베이스 및 기타 리소스가 있습니다.

더 일반적으로, 저는 샌드 박싱이 가상 머신과 같은 것을 언급하는 것을 보았습니다. 머신에서 실행중인 코드를 격리하여 기본 시스템에 영향을주지 않습니다.


1
좋습니다. 기본적으로 샌드 박싱은 소프트웨어를 실제로 사용하기 전에 제어 된 환경에서 테스트하는 것입니다. 권리? btw, 왜 '샌드 박싱'이라고 부르나요?
Lazer

>> 사람들이 샌드 박스 ( thefreedictionary.com/sandbox- 정의 # 3) 에서 어린이처럼 소프트웨어 / 하드웨어를 가지고 놀기 때문에 @eSKay가 '샌드 박스'라고 부르는 이유는 무엇 입니까 ?
Darmen Amanbayev 2010 년

그렇다면 샌드 박스와 스테이징 환경의 차이점은 무엇입니까?
Mohammad Jamal Dashtaki

15

구체적인 예를 들어, 송금을 처리하는 애플리케이션이 있다고 가정합니다. 생산 환경에서는 실제 돈이 교환됩니다. 샌드 박스 환경에서는 모든 것이 정확히 동일하게 실행되지만 돈은 가상입니다. 테스트 목적입니다.

예를 들어 Paypal 은 이러한 샌드 박스 환경을 제공합니다.


6

소프트웨어 개발의 "샌드 박스"는 다른 사람을 방해하지 않고 고립 된 방식으로 개발하는 것을 의미합니다.

버전 제어와 비슷하지 않습니다. 그러나 일부 버전 제어 (분기) 방법은 샌드 박스를 만드는 데 도움이 될 수 있습니다.


0

더 자주 우리 는 다른 샌드 박스를 참조합니다 .


어쨌든 샌드 박스는 종종 격리 된 환경을 의미 합니다 . 샌드 박스에서 원하는 것은 무엇이든 할 수 있지만 그 효과는 샌드 박스 외부로 전파되지 않습니다. 예를 들어 소프트웨어 개발에서는 /usr/lib라이브러리 등을 테스트하기 위해 물건을 엉망으로 만들 필요가 없습니다 .

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