Centrum wiedzy o technologiach i pracy w IT
python tofixed

Python Sandbox – bezpieczne środowisko do eksperymentowania z kodem

Ostatnia aktualizacja 22 kwietnia, 2024

Python Sandbox to środowisko, które pozwala na bezpieczne uruchamianie kodu w Pythonie, izolując go od głównego systemu operacyjnego i jego zasobów. Dzięki temu użytkownicy mogą eksperymentować z różnymi fragmentami kodu bez ryzyka uszkodzenia ważnych plików systemowych lub danych. Sandbox wykorzystuje się często w edukacji, testowaniu oprogramowania i analizie bezpieczeństwa.

Nie udało się zapisać Twojej subskrypcji. Spróbuj ponownie.
Udało się! Widzimy się niebawem – newsletter wysyłamy w każdy wtorek

Otrzymuj za darmo unikalne poradniki, dane i wiedzę o pracy w IT – dostarczane co tydzień

Klikając “Zapisz mnie” wyrażasz zgodę na otrzymywanie e-maili od redakcji, a także ofert partnerów oraz akceptujesz naszą Politykę prywatności.

Zastosowania Python Sandbox

  • Edukacja. Nauczyciele mogą korzystać z sandboxów, aby pozwolić uczniom na eksperymentowanie z kodem w bezpiecznym środowisku.
  • Rozwój oprogramowania. Programiści mogą testować nowe funkcje aplikacji bez wpływu na działanie głównego środowiska produkcyjnego.
  • Bezpieczeństwo. Analitycy bezpieczeństwa mogą uruchamiać i analizować potencjalnie szkodliwe oprogramowanie w kontrolowanych warunkach.
  • Analiza danych. Analitycy danych mogą używać sandboxów do testowania skryptów analizujących duże zbiory danych bez obawy o wprowadzenie zmian w żywych danych lub wpływanie na wydajność produkcyjnych systemów baz danych.
  • Demonstracje produktów. W przypadku prezentacji oprogramowania klientom, sandbox może być używany do demonstrowania funkcji produktu bez ryzyka wpływu na działające systemy. Każda demonstracja może być przeprowadzona w czystym środowisku, które można szybko zresetować do stanu początkowego.
  • Uruchamianie kodu od klientów. Firmy oferujące usługi informatyczne mogą używać sandboxów do bezpiecznego uruchamiania kodu dostarczonego przez klientów. Pozwala to na testowanie i debugowanie kodu w izolowanym środowisku, zanim zostanie zintegrowany z głównym systemem.

Tworzenie prostego sandboxa w Pythonie

Załóżmy, że chcemy uruchomić kod, który odczytuje dane z pliku, ale chcemy to zrobić bezpiecznie, bez dostępu do rzeczywistych plików systemowych. Możemy użyć biblioteki os do ograniczenia dostępu do systemu plików.

import os

# Ogranicz dostęp do systemowych zasobów plików
os.chroot("/path/to/safe/directory")

# Próba odczytania pliku w bezpiecznym katalogu
try:
    with open("example.txt", "r") as file:
        data = file.read()
        print("Dane z pliku:", data)
except FileNotFoundError:
    print("Plik nie istnieje w bezpiecznym środowisku.")

W tym przykładzie używamy os.chroot, aby zmienić katalog główny na bezpieczny katalog, co uniemożliwia dostęp do systemowych zasobów poza tym katalogiem.

Dalsza część tekstu znajduje się pod materiałem wideo:

Uruchamianie kodu w izolowanym środowisku z użyciem biblioteki exec

Funkcja exec pozwala na dynamiczne wykonanie kodu Python, który jest przechowywany w stringu lub pliku. Możemy ograniczyć środowisko uruchamiania kodu, używając lokalnych zmiennych.

code_to_run = 'print("Hello, sandbox!")'
exec_globals = {"__builtins__": None}  # Ograniczenie dostępu do wbudowanych funkcji
exec_locals = {}

exec(code_to_run, exec_globals, exec_locals)

Tutaj ograniczamy kod do uruchamiania bez dostępu do wbudowanych funkcji Pythona, co znacznie zwiększa bezpieczeństwo.

Dziękujemy, że przeczytałaś/eś nasz artykuł. Obserwuj EnterTheCode.pl w Wiadomościach Google, aby być na bieżąco.

Czytaj także:

Sandbox w technologii. Co to jest i jak działa

Silnia w Pythonie. Wprowadzenie i przykłady

Total
0
Shares
_podobne artykuły