Apa itu kotak pasir?

118

Saya telah membaca artikel Wikipedia , tetapi saya tidak begitu yakin apa artinya, dan seberapa mirip dengan kontrol versi .

Akan sangat membantu jika seseorang dapat menjelaskan dengan sangat sederhana apa itu sandboxing.

Lazer
sumber

Jawaban:

266

masukkan deskripsi gambar di sini

Sebuah tanjung berpasir atau pasir adalah rendah, wadah lebar atau dangkal depresi diisi dengan pasir di mana anak-anak bisa bermain. Banyak pemilik rumah dengan anak-anak membangun lubang pasir di halaman belakang mereka karena, tidak seperti kebanyakan peralatan bermain, lubang pasir dapat dibangun dengan mudah dan murah. Sebuah "tanjung berpasir" juga bisa menunjukkan tambang pasir lubang terbuka.

Nah, kotak pasir perangkat lunak tidak berbeda dengan kotak pasir yang dibuat untuk anak-anak bermain. Dengan menyediakan kotak pasir untuk anak, kami mensimulasikan lingkungan tempat bermain yang sebenarnya (dengan kata lain an isolated environment) tetapi dengan batasan tentang apa yang dapat dilakukan anak. Karena kami tidak ingin anak terinfeksi atau kami tidak ingin dia menyusahkan orang lain. :) Apa pun alasannya, kami hanya ingin membatasi apa yang dapat dilakukan anak Security Reasons.

Sekarang datang ke kotak pasir perangkat lunak kami, kami membiarkan perangkat lunak apa pun (anak) untuk mengeksekusi (bermain) tetapi dengan beberapa batasan atas apa yang dapat dilakukannya. Kami dapat merasa aman & terjamin tentang apa yang dapat dilakukan oleh perangkat lunak pelaksana.

Anda telah melihat & menggunakan perangkat lunak Antivirus. Baik? Ini juga semacam kotak pasir. Ini memberi batasan pada apa yang dapat dilakukan program apa pun. Ketika aktivitas berbahaya terdeteksi, ia berhenti dan memberi tahu pengguna bahwa "aplikasi ini mencoba mengakses sumber daya ini & itu. Ingin mengizinkan?".

Unduh program bernama sandboxie dan Anda bisa mendapatkan pengalaman langsung dari kotak pasir. Dengan menggunakan program ini, Anda dapat menjalankan program apa pun di lingkungan yang terkontrol.

Panah merah menunjukkan perubahan yang mengalir dari program yang sedang berjalan ke komputer Anda. Kotak berlabel Hard disk (tidak ada kotak pasir) menunjukkan perubahan oleh program yang berjalan normal. Kotak berlabel Hard disk (dengan kotak pasir) menunjukkan perubahan oleh program yang berjalan di bawah Sandboxie. Animasi tersebut menggambarkan bahwa Sandboxie mampu mencegat perubahan dan mengisolasinya dalam kotak pasir, yang digambarkan sebagai persegi panjang kuning. Ini juga menggambarkan bahwa mengelompokkan perubahan bersama-sama membuatnya mudah untuk menghapus semuanya sekaligus.

masukkan deskripsi gambar di sini

Sekarang dari sudut pandang programmer, sandbox membatasi API yang diizinkan untuk aplikasi tersebut. Dalam contoh antivirus, kami membatasi panggilan sistem (API sistem operasi).

Contoh lain adalah arena pengkodean online seperti topcoder. Anda mengirimkan kode (program) tetapi berjalan di server. Untuk safetyserver, Mereka harus membatasi tingkat akses API program. Dengan kata lain, mereka perlu membuat kotak pasir dan menjalankan program Anda di dalamnya.

Jika Anda memiliki sandox yang tepat, Anda bahkan dapat menjalankan file yang terinfeksi virus dan menghentikan semua aktivitas berbahaya dari virus dan melihat sendiri apa yang coba dilakukannya. Faktanya, ini akan menjadi langkah pertama seorang peneliti Antivirus.

cakar
sumber
31

Definisi sandboxing ini pada dasarnya berarti memiliki lingkungan pengujian (integrasi pengembang, jaminan kualitas, tahapan, dll). Lingkungan pengujian ini meniru produksi, tetapi tidak berbagi sumber daya produksi apa pun. Mereka memiliki server, antrian, database, dan sumber daya lain yang sepenuhnya terpisah.

Lebih umum, saya telah melihat sandboxing mengacu pada sesuatu seperti mesin virtual - mengisolasi beberapa kode yang sedang berjalan pada mesin sehingga tidak dapat mempengaruhi sistem dasar.

Kaleb Brasee
sumber
1
oke, pada dasarnya sandboxing adalah menguji perangkat lunak di lingkungan yang terkontrol sebelum menggunakannya untuk akhirnya. Baik? btw, kenapa disebut 'sandboxing'?
Lazer
>> mengapa disebut 'sandboxing' @eSKay karena orang bermain dengan software / hardware seperti anak-anak di kotak pasir mereka ( thefreedictionary.com/sandbox - definisi # 3).
Darmen Amanbayev
Jadi, Apa perbedaan antara sandbox dan lingkungan pementasan?
Mohammad Jamal Dashtaki
15

Untuk contoh konkret: misalkan Anda memiliki aplikasi yang berhubungan dengan transfer uang. Dalam lingkungan produksi, uang riil dipertukarkan. Di lingkungan kotak pasir, semuanya berjalan persis sama, tetapi uangnya virtual. Ini untuk tujuan pengujian.

Paypal menawarkan lingkungan kotak pasir seperti itu, misalnya.

JRL
sumber
6

Untuk “sandbox” dalam pengembangan perangkat lunak, itu berarti mengembangkan tanpa mengganggu orang lain secara terisolasi.

Ini tidak sama dengan kontrol versi. Tetapi beberapa metode kontrol versi (sebagai percabangan) dapat membantu membuat kotak pasir.

Francis
sumber
0

Lebih sering kita mengacu pada sandbox lainnya .


Bagaimanapun, kotak pasir sering berarti lingkungan yang terisolasi . Anda dapat melakukan apa pun yang Anda suka di kotak pasir, tetapi efeknya tidak akan menyebar ke luar kotak pasir. Misalnya, dalam pengembangan perangkat lunak, itu berarti Anda tidak perlu mengotak-atik barang /usr/libuntuk menguji perpustakaan Anda, dll.

kennytm
sumber