Cos'è il sandboxing?


118

Ho letto l' articolo di Wikipedia , ma non sono sicuro di cosa significhi e di quanto sia simile al controllo della versione .

Sarebbe utile se qualcuno potesse spiegare in termini molto semplici cos'è il sandboxing.

Risposte:


266

inserisci qui la descrizione dell'immagine

Una sabbiera o sabbiera è un contenitore basso e largo o una depressione poco profonda riempita di sabbia in cui i bambini possono giocare. Molti proprietari di case con bambini costruiscono sabbiere nei loro cortili perché, a differenza di molte attrezzature per parchi giochi, possono essere costruite facilmente ed a buon mercato. Una "cava di sabbia" può anche denotare una miniera di sabbia a cielo aperto.

Bene, una sandbox software non è diversa da una sandbox creata per far giocare un bambino. Fornendo una sandbox a un bambino simuliamo l'ambiente di un vero parco giochi (in altre parole un isolated environment) ma con limitazioni su ciò che un bambino può fare. Perché non vogliamo che un bambino venga infettato o non vogliamo che causi problemi agli altri. :) Qualunque sia la ragione, vogliamo solo porre delle restrizioni su ciò per cui il bambino può fare Security Reasons.

Venendo ora alla nostra sandbox software, permettiamo a qualsiasi software (bambino) di eseguire (giocare) ma con alcune restrizioni su ciò che (lui) può fare. Possiamo sentirci al sicuro e protetti su ciò che il software in esecuzione può fare.

Hai visto e utilizzato software antivirus. Destra? È anche una specie di sandbox. Pone delle restrizioni su ciò che qualsiasi programma può fare. Quando viene rilevata un'attività dannosa, si interrompe e informa l'utente che "questa applicazione sta tentando di accedere a risorse tal dei quali. Vuoi consentire?".

Scarica un programma chiamato sandboxie e puoi provare l'esperienza pratica di un sandbox. Utilizzando questo programma è possibile eseguire qualsiasi programma in ambiente controllato.

Le frecce rosse indicano le modifiche che fluiscono da un programma in esecuzione al computer. La casella denominata Disco rigido (senza sandbox) mostra le modifiche apportate da un programma in esecuzione normalmente. La casella denominata Disco rigido (con sandbox) mostra le modifiche apportate da un programma in esecuzione in Sandboxie. L'animazione mostra che Sandboxie è in grado di intercettare le modifiche e isolarle all'interno di una sandbox, rappresentata come un rettangolo giallo. Illustra inoltre che il raggruppamento delle modifiche consente di eliminarle facilmente tutte contemporaneamente.

inserisci qui la descrizione dell'immagine

Ora, dal punto di vista di un programmatore, sandbox limita l'API consentita all'applicazione. Nell'esempio dell'antivirus, limitiamo la chiamata di sistema (API del sistema operativo).

Un altro esempio potrebbe essere arene di programmazione online come topcoder. Si invia un codice (programma) ma viene eseguito sul server. Per il safetyserver, dovrebbero limitare il livello di accesso dell'API del programma. In altre parole, devono creare una sandbox ed eseguire il programma al suo interno.

Se si dispone di un sandox appropriato, è anche possibile eseguire un file infetto da virus e interrompere tutte le attività dannose del virus e vedere di persona cosa sta cercando di fare. In effetti, questo sarà il primo passo di un ricercatore di antivirus.


31

Questa definizione di sandboxing significa fondamentalmente avere ambienti di test (integrazione degli sviluppatori, controllo della qualità, stage, ecc.). Questi ambienti di test imitano la produzione, ma non condividono nessuna delle risorse di produzione. Hanno server, code, database e altre risorse completamente separati.

Più comunemente, ho visto che il sandboxing si riferisce a qualcosa di simile a una macchina virtuale, isolando del codice in esecuzione su una macchina in modo che non possa influenzare il sistema di base.


1
ok, fondamentalmente il sandboxing consiste nel testare un software in un ambiente controllato prima di metterlo in pratica. giusto? btw, perché si chiama "sandboxing"?
Lazer

>> perché si chiama 'sandboxing' @eSKay perché le persone giocano con il software / hardware come i bambini nelle loro sandbox ( thefreedictionary.com/sandbox - definizione # 3).
Darmen Amanbayev

Allora, qual è la differenza tra sandbox e ambienti di staging?
Mohammad Jamal Dashtaki

15

Per un esempio concreto: supponi di avere un'applicazione che si occupa di trasferimenti di denaro. Nell'ambiente di produzione viene scambiato denaro reale. Nell'ambiente sandbox, tutto funziona esattamente allo stesso modo, ma il denaro è virtuale. È a scopo di test.

Paypal offre un tale ambiente sandbox, ad esempio.


6

Per la "sandbox" nello sviluppo del software, significa sviluppare senza disturbare gli altri in modo isolato.

Non è simile al controllo della versione. Ma alcuni metodi di controllo della versione (come ramificazione) possono aiutare a creare sandbox.


0

Più spesso ci riferiamo all'altra sandbox .


In ogni caso, sandbox spesso significa un ambiente isolato . Puoi fare tutto ciò che ti piace nella sandbox, ma il suo effetto non si propagherà al di fuori della sandbox. Ad esempio, nello sviluppo di software, ciò significa che non è necessario fare confusione con cose /usr/libper testare la tua libreria, ecc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.