Sandboxing คืออะไร?


118

ฉันได้อ่านบทความ Wikipediaแล้ว แต่ฉันไม่แน่ใจจริงๆว่ามันหมายถึงอะไรและคล้ายกับการควบคุมเวอร์ชันอย่างไร

จะเป็นประโยชน์ถ้าใครสักคนสามารถอธิบายได้ง่ายๆว่าแซนด์บ็อกซ์คืออะไร

คำตอบ:


266

ใส่คำอธิบายภาพที่นี่

ทรายหรือ Sandboxเป็นต่ำภาชนะที่กว้างหรือตื้นภาวะซึมเศร้าเต็มไปด้วยทรายที่เด็กสามารถเล่น เจ้าของบ้านหลายคนที่มีลูก ๆ สร้างหลุมทรายในสวนหลังบ้านเพราะไม่เหมือนกับอุปกรณ์สนามเด็กเล่นทั่วไปพวกเขาสามารถสร้างได้ง่ายและราคาถูก "sandpit" อาจหมายถึงเหมืองทรายแบบเปิด

แซนด์บ็อกซ์ซอฟต์แวร์ไม่ต่างจากแซนด์บ็อกซ์ที่สร้างขึ้นเพื่อให้เด็กเล่น ด้วยการจัดหากระบะทรายให้กับเด็กเราจะจำลองสภาพแวดล้อมของสนามเด็กเล่นจริง (หรืออีกนัยหนึ่งคือisolated environment) แต่มีข้อ จำกัด ในสิ่งที่เด็กทำได้ เพราะเราไม่อยากให้ลูกติดเชื้อหรือไม่อยากให้เขาสร้างความเดือดร้อนให้คนอื่น :) ดังนั้นสิ่งที่เคยเหตุผลคือเราเพียงแค่ต้องการที่จะนำข้อ จำกัด Security Reasonsในสิ่งที่เด็กสามารถทำเพื่อ

ตอนนี้มาถึงแซนด์บ็อกซ์ซอฟต์แวร์ของเราเราปล่อยให้ซอฟต์แวร์ใด ๆ (ลูก) ดำเนินการ (เล่น) แต่มีข้อ จำกัด บางประการเกี่ยวกับสิ่งที่ (เขา) สามารถทำได้ เรารู้สึกปลอดภัยและมั่นคงเกี่ยวกับสิ่งที่ซอฟต์แวร์เรียกใช้งานสามารถทำได้

คุณเคยเห็นและใช้ซอฟต์แวร์ป้องกันไวรัส ขวา? นอกจากนี้ยังเป็นกระบะทรายชนิดหนึ่ง มันมีข้อ จำกัด ว่าโปรแกรมใด ๆ สามารถทำได้ เมื่อตรวจพบกิจกรรมที่เป็นอันตรายแอปพลิเคชันจะหยุดและแจ้งให้ผู้ใช้ทราบว่า "แอปพลิเคชันนี้กำลังพยายามเข้าถึงทรัพยากรต่างๆต้องการอนุญาตหรือไม่"

ดาวน์โหลดโปรแกรมชื่อsandboxieและคุณจะได้สัมผัสกับประสบการณ์การใช้งาน Sandbox การใช้โปรแกรมนี้คุณสามารถรันโปรแกรมใดก็ได้ในสภาพแวดล้อมที่มีการควบคุม

ลูกศรสีแดงแสดงถึงการเปลี่ยนแปลงที่มาจากโปรแกรมที่กำลังทำงานอยู่ในคอมพิวเตอร์ของคุณ กล่องที่มีข้อความว่า Hard disk (ไม่มี Sandbox) จะแสดงการเปลี่ยนแปลงของโปรแกรมที่ทำงานตามปกติ กล่องที่มีข้อความว่าฮาร์ดดิสก์ (พร้อมแซนด์บ็อกซ์) แสดงการเปลี่ยนแปลงของโปรแกรมที่ทำงานภายใต้ Sandboxie แอนิเมชั่นแสดงให้เห็นว่า Sandboxie สามารถสกัดกั้นการเปลี่ยนแปลงและแยกสิ่งเหล่านั้นออกจากกันภายใน Sandbox โดยแสดงเป็นสี่เหลี่ยมผืนผ้าสีเหลือง นอกจากนี้ยังแสดงให้เห็นว่าการจัดกลุ่มการเปลี่ยนแปลงเข้าด้วยกันทำให้ง่ายต่อการลบทั้งหมดในครั้งเดียว

ใส่คำอธิบายภาพที่นี่

จากมุมมองของโปรแกรมเมอร์แซนด์บ็อกซ์กำลัง จำกัด API ที่อนุญาตให้ใช้กับแอปพลิเคชัน ในตัวอย่างโปรแกรมป้องกันไวรัสเรากำลัง จำกัด การเรียกระบบ (API ระบบปฏิบัติการ)

อีกตัวอย่างหนึ่งคือพื้นที่การเข้ารหัสออนไลน์เช่น topcoder คุณส่งรหัส (โปรแกรม) แต่ทำงานบนเซิร์ฟเวอร์ สำหรับsafetyเซิร์ฟเวอร์ควร จำกัด ระดับการเข้าถึง API ของโปรแกรม กล่าวอีกนัยหนึ่งคือต้องสร้างแซนด์บ็อกซ์และเรียกใช้โปรแกรมของคุณภายในนั้น

หากคุณมีแซนด็อกซ์ที่เหมาะสมคุณยังสามารถเรียกใช้ไฟล์ที่ติดไวรัสและหยุดกิจกรรมที่เป็นอันตรายทั้งหมดของไวรัสและดูด้วยตัวคุณเองว่ากำลังพยายามทำอะไรอยู่ อันที่จริงนี่จะเป็นก้าวแรกของนักวิจัยแอนตี้ไวรัส


31

คำจำกัดความของแซนด์บ็อกซ์โดยทั่วไปหมายถึงการมีสภาพแวดล้อมการทดสอบ (การรวมนักพัฒนาการประกันคุณภาพขั้นตอน ฯลฯ ) สภาพแวดล้อมการทดสอบเหล่านี้เลียนแบบการผลิต แต่ไม่แบ่งปันทรัพยากรการผลิตใด ๆ พวกเขามีเซิร์ฟเวอร์คิวฐานข้อมูลและทรัพยากรอื่น ๆ ที่แยกจากกันโดยสิ้นเชิง

โดยทั่วไปแล้วฉันเคยเห็นแซนด์บ็อกซ์อ้างถึงบางสิ่งเช่นเครื่องเสมือน - การแยกโค้ดที่ทำงานอยู่บนเครื่องเพื่อไม่ให้ส่งผลกระทบต่อระบบฐาน


1
โอเคโดยทั่วไปแล้วการทำแซนด์บ็อกซ์คือการทดสอบซอฟต์แวร์ในสภาพแวดล้อมที่มีการควบคุมก่อนที่จะนำไปใช้งานจริง ขวา? btw ทำไมถึงเรียกว่า 'sandboxing'?
Lazer

>> เหตุใดจึงเรียกว่า 'sandboxing' @eSKay เพราะผู้คนเล่นกับซอฟต์แวร์ / ฮาร์ดแวร์เหมือนเด็ก ๆ ในแซนด์บ็อกซ์ ( thefreedictionary.com/sandbox - คำจำกัดความ # 3)
Darmen Amanbayev

ดังนั้นอะไรคือความแตกต่างระหว่างแซนด์บ็อกซ์และสภาพแวดล้อมการแสดงละคร?
Mohammad Jamal Dashtaki

15

ตัวอย่างที่เป็นรูปธรรม: สมมติว่าคุณมีแอปพลิเคชันที่เกี่ยวข้องกับการโอนเงิน ในสภาพแวดล้อมการผลิตมีการแลกเปลี่ยนเงินจริง ในสภาพแวดล้อมแซนด์บ็อกซ์ทุกอย่างทำงานเหมือนกันหมด แต่เงินเป็นเสมือน มีวัตถุประสงค์เพื่อการทดสอบ

Paypalนำเสนอสภาพแวดล้อมแบบแซนด์บ็อกซ์เช่น


6

สำหรับ "แซนด์บ็อกซ์" ในการพัฒนาซอฟต์แวร์หมายถึงการพัฒนาโดยไม่รบกวนผู้อื่นด้วยวิธีแยก

ไม่เหมือนกับการควบคุมเวอร์ชัน แต่บางวิธีการควบคุมเวอร์ชัน (เป็นการแยกส่วน) สามารถช่วยในการสร้างแซนด์บ็อกซ์ได้


0

บ่อยขึ้นเราจะเรียกsandbox ที่อื่น ๆ


ในแล้ว sandbox ที่มักจะหมายถึงสภาพแวดล้อมที่แยก คุณสามารถทำอะไรก็ได้ที่ต้องการในแซนด์บ็อกซ์ แต่เอฟเฟกต์ของมันจะไม่แพร่กระจายนอกแซนด์บ็อกซ์ ตัวอย่างเช่นในการพัฒนาซอฟต์แวร์นั่นหมายความว่าคุณไม่จำเป็นต้องยุ่งกับสิ่งต่างๆ/usr/libเพื่อทดสอบไลบรารีของคุณเป็นต้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.