web-dev-qa-db-ja.com

サンドボックスとは何ですか?

私は Wikipediaの記事 を読みましたが、それが何を意味するのか、それがバージョン管理

誰かがサンドボックスとは何かを非常に簡単な言葉で説明できれば助かります。

108
Lazer

enter image description here

砂場または砂場 は、子供が遊ぶことができる、砂で満たされた低くて広い容器または浅い窪みです。子供を持つ多くの住宅所有者は、多くの遊具とは異なり、簡単かつ安価に建設できるため、裏庭に砂場を建設します。 「砂場」は、露天掘りの砂鉱山を示す場合もあります。

さて、ソフトウェアサンドボックスは、子供が遊ぶために作られたサンドボックスと同じです。サンドボックスを子供に提供することで、実際の遊び場(つまりisolated environment)の環境をシミュレートしますが、子供ができることには制限があります。私たちは子供が感染することを望まないか、彼が他の人に問題を引き起こすことを望まないからです。 :)これまでの理由は何ですか、子供がSecurity Reasonsに対してできることを制限したいだけです。

ソフトウェアサンドボックスに来て、ソフトウェア(子)が実行(プレイ)できるようにしますが、実行できることに関していくつかの制限があります。実行中のソフトウェアが何ができるかについてsafe&secureを感じることができます。

アンチウイルスソフトウェアを見てきました。右?また、一種のサンドボックスです。どんなプログラムでもできることを制限します。悪意のあるアクティビティが検出されると、停止し、「このアプリケーションはリソースにアクセスしようとしています。許可しますか?」とユーザーに通知します。

sandboxie という名前のプログラムをダウンロードすると、サンドボックスを実際に体験できます。このプログラムを使用すると、制御された環境で任意のプログラムを実行できます。

赤い矢印は、実行中のプログラムからコンピューターに流れる変更を示します。 [ハードディスク(サンドボックスなし)]というラベルの付いたボックスには、正常に実行されているプログラムによる変更が表示されます。 Hard disk(with sandbox)というラベルの付いたボックスには、Sandboxieの下で実行されているプログラムによる変更が表示されます。このアニメーションは、Sandboxieが変更を傍受し、それらを黄色の長方形として描かれたサンドボックス内に隔離できることを示しています。また、変更をグループ化すると、すべての変更を一度に簡単に削除できることがわかります。

enter image description here

プログラマーの観点から見ると、サンドボックスはアプリケーションに許可されるAPIを制限しています。ウイルス対策の例では、システムコール(オペレーティングシステムAPI)を制限しています。

別の例は、トップコーダーのようなオンラインコーディングアリーナです。コード(プログラム)を送信しますが、サーバー上で実行されます。サーバーのsafetyについては、プログラムのAPIのアクセスレベルを制限する必要があります。つまり、サンドボックスを作成し、その中でプログラムを実行する必要があります。

適切なサンドックスがある場合は、ウイルスに感染したファイルを実行して、ウイルスのすべての悪意のある活動を停止し、何をしようとしているかを自分で確認することもできます。実際、これはアンチウイルス研究者の最初のステップになります。

249
claws

サンドボックスのこの定義は、基本的にテスト環境(開発者の統合、品質保証、ステージなど)を持つことを意味します。これらのテスト環境は実稼働を模倣しますが、実稼働リソースを共有しません。サーバー、キュー、データベース、およびその他のリソースは完全に分離されています。

より一般的には、サンドボックスが仮想マシンのようなものを参照するのを見てきました-マシン上で実行中のコードを隔離して、ベースシステムに影響を与えないようにします。

27
Kaleb Brasee

具体的な例として、送金を処理するアプリケーションがあるとします。実稼働環境では、リアルマネーが交換されます。サンドボックス環境では、すべてがまったく同じように実行されますが、お金は仮想的なものです。テスト用です。

Paypal は、たとえば、このようなサンドボックス環境を提供します。

12
JRL

ソフトウェア開発における「サンドボックス」とは、孤立した方法で他者を邪魔することなく開発することを意味します。

バージョン管理には似ていません。ただし、一部のバージョン管理(分岐として)メソッドは、サンドボックスの作成に役立ちます。

5
Francis

多くの場合、 他のサンドボックス を参照します。


とにかく、サンドボックスはしばしば隔離された環境を意味します。サンドボックス内で好きなことを行うことができますが、その効果はサンドボックスの外側には伝播しません。たとえば、ソフトウェア開発では、ライブラリをテストするために/usr/libの中のものをいじる必要がないことを意味します。

0
kennytm