Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
modul:m122:learningunits:lu08:einfuehrung [2024/12/02 09:16] msutermodul:m122:learningunits:lu08:einfuehrung [2024/12/09 10:31] (aktuell) msuter
Zeile 14: Zeile 14:
  
 ===== Sicherheitshinweise ===== ===== Sicherheitshinweise =====
 +==== Eingaben validieren ====
 +Vermeiden Sie die direkte Übergabe von Benutzereingaben an Shell-Befehle, um Sicherheitsrisiken wie Code-Injection zu verhindern. 
  
- +**Beispiel:**
-Eingabesanitierung: Vermeiden Sie die direkte Übergabe von Benutzereingaben an Shell-Befehle, um Sicherheitsrisiken wie Code-Injection zu verhindern. Beispiel:+
  
 <code python> <code python>
Zeile 23: Zeile 24:
 </code> </code>
  
-Stattdessen:+**Stattdessen:**
 <code python> <code python>
 subprocess.run(['rm', '-rf', user_input], check=True) subprocess.run(['rm', '-rf', user_input], check=True)
Zeile 31: Zeile 32:
 Überprüfen Sie Rückgabecodes und Ausgaben auf Fehler. Überprüfen Sie Rückgabecodes und Ausgaben auf Fehler.
  
-===== Fazit =====+<code python> 
 +import subprocess
  
 +# Bash-Befehl, der ausgeführt werden soll
 +command = "ls -l /"
 +
 +try:
 +    # Ausführung des Befehls
 +    result = subprocess.run(
 +        command,          # Der Befehl als String
 +        shell=True,       # Ausführung in einer Shell
 +        check=True,       # Fehler werfen, wenn der Rückgabecode ungleich 0 ist
 +        text=True,        # Gibt die Ausgaben als Strings zurück (anstatt Bytes)
 +        stdout=subprocess.PIPE,  # Standardausgabe umleiten
 +        stderr=subprocess.PIPE   # Standardfehlerausgabe umleiten
 +    )
 +    # Ausgabe des Ergebnisses
 +    print("Befehl erfolgreich ausgeführt!")
 +    print("Rückgabecode:", result.returncode)
 +    print("Ausgabe:")
 +    print(result.stdout)
 +except subprocess.CalledProcessError as e:
 +    # Fehlerbehandlung, wenn der Befehl fehlschlägt
 +    print("Fehler bei der Ausführung des Befehls!")
 +    print("Rückgabecode:", e.returncode)
 +    print("Fehlermeldung:")
 +    print(e.stderr)
 +except Exception as ex:
 +    # Generelle Fehlerbehandlung
 +    print(f"Ein unerwarteter Fehler ist aufgetreten: {ex}")
 +</code>
 +
 +===== Fazit =====
  
-Python bietet flexible Werkzeuge zur Integration von Bash-Befehlen und ist eine ideale Wahl für die Entwicklung leistungsstarker Automatisierungs- und Verwaltungsskripte. Das subprocess-Modul ist die bevorzugte Methode, da es präzise Kontrolle und Sicherheit bietet. Durch das Verständnis dieser Techniken können Sie die Stärken von Python und Bash optimal kombinieren, um Ihre Workflows effizienter zu gestalten.+Python bietet flexible Werkzeuge zur Integration von Bash-Befehlen und ist eine ideale Wahl für die Entwicklung leistungsstarker Automatisierungs- und Verwaltungsskripte.  
 +Das ''subprocess''-Modul ist die bevorzugte Methode, da es präzise Kontrolle und Sicherheit bietet.  
 +Durch das Verständnis dieser Techniken können Sie die Stärken von Python und Bash optimal kombinieren, um Ihre Workflows effizienter zu gestalten.
  • modul/m122/learningunits/lu08/einfuehrung.1733127360.txt.gz
  • Zuletzt geändert: 2024/12/02 09:16
  • von msuter